`

EJB3开发第一个无状态会话bean

    博客分类:
  • EJB
ejb 
阅读更多
无状态的EJB:EJB容器不对EJB的状态进行管理(通常,对于无状态的EJB,容器采取单例模式来实现)
Ejb的编写方法:
1.定义Ejb接口
2.编写Ejb的实现类
3.定义Ejb的类型和Ejb的访问方式
4.部署,打成jar包---->jboss中,server--->default---->deploy
有状态Session Bean与无状态Session Bean区别
Stateless Session Bean可以暂时理解为单例(singleton)
stateful session bean可以暂时理解为prototype原型,每一次都从对象池中获得新的对象。
比如:有十个客户端,那么取得的都是不同的对象,Ejb容器要维护状态.
在一次会话过程中,无状态会话Bean不会保持其状态值.也就是说,在无状态会话Bean中,容器不会对Bean的状态进行管理。这就是它与有状态会话Bean的根本区别.
由于有状态会话Bean需要容器对其状态进行管理,所以要消耗更多的内存和性能,使用无状态会话Bean则能获得更好的性能.

package cn.itcast.ejb3;

public interface HelloWorld {
	public String sayHello(String name);
}



package cn.itcast.ejb3.impl;

import javax.ejb.Remote;
import javax.ejb.Stateless;

import cn.itcast.ejb3.HelloWorld;
@Stateless
@Remote(HelloWorld.class)
public class HelloWorldBean implements HelloWorld {

	@Override
	public String sayHello(String name) {
		return name + "说:你好,世界!";
	}

}



把上面的代码打成helloworld.jar仍到jboss中即可.
然后启动jboss服务器,这样客户端java应用程序就可以调用Ejb程序了!
开发EJB的客户端
package cn.itcast.test;

import java.util.Properties;

import javax.naming.InitialContext;
import javax.naming.NamingException;

import cn.itcast.ejb3.HelloWorld;

public class EJBClient {

	public static void main(String[] agrs) {
		Properties props = new Properties();
		props.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
		props.setProperty("java.naming.provider.url","localhost:1099");
		try {
			InitialContext ctx = new InitialContext(props);
			HelloWorld helloworld = (HelloWorld)ctx.lookup("HelloWorldBean/remote");
			System.out.println(helloworld.sayHello("佛山"));
		} catch (NamingException e) {
			e.printStackTrace();
		}
	}
}
程序所需要的jar包就是jboss-4.2.2.GA\client所有的依赖包即可


<?xml version="1.0" encoding="UTF-8"?>
<project name="HelloWorld" basedir=".">
	
	<property name="src.dir" location="${basedir}\src"></property>
	<property environment="env" />
	<property name="jboss.home" value="${env.JBOSS_HOME}"></property>
	<property name="jboss.server.config" value="default"></property>
	<property name="build.dir" value="${basedir}\build"></property>
	
	<path id="build.classpath">
			<fileset dir="${jboss.home}\client">
					<include name="*.jar" />
			</fileset>
			<pathelement location="${build.dir}" />
	</path>
	
	<target name="prepare">
			<delete dir="${build.dir}" />
			<mkdir dir="${build.dir}" />
	</target>
	
	<target name="compile" depends="prepare" description="编译">
			<javac srcdir="${src.dir}" destdir="${build.dir}">
				 	<compilerarg line="-encoding UTF-8 " />
					<classpath refid="build.classpath"></classpath>
			</javac>
	</target>
	
	<target name="ejbjar"  depends="compile" description="创建EJB发布包">
			<jar destfile="${basedir}\${ant.project.name}.jar">
					<fileset dir="${build.dir}">
							<include name="**/*.class" />
					</fileset>
			</jar>
	</target>
	
	<target name="deploy" depends="ejbjar" description="发布ejb">
			<copy file="${basedir}\${ant.project.name}.jar" todir="${jboss.home}\server\${jboss.server.config}\deploy"></copy>
	</target>
	
	<target name="undeploy" description="卸载ejb">
			<delete file="${jboss.home}\server\${jboss.server.config}\deploy\${ant.project.name}.jar"></delete>
	</target>
	
</project>
分享到:
评论

相关推荐

    ejb3.0 第2,3讲-开发第一个无状态会话bean和客户端

    **ejb3.0 第2,3讲 - 开发第一个无状态会话bean和客户端** 在Java企业版(Java EE)中,Enterprise JavaBeans(EJB)是用于构建可扩展、安全和事务处理的服务器端应用程序的核心组件。EJB 3.0是一个重要的版本,它极...

    实战EJB之三 开发会话Bean(有状态会话Bean).doc

    购物车是一个典型的有状态会话Bean的示例,当一个客户第一次打开购物车时,系统为他分配一个购物车的会话Bean,在以后,每当客户选购了商品将改变购物车的商品记录,而这些记录数据将保存到用户会话数据中。...

    EJB 3.0无状态会话Bean应用

    该示例使用Eclipse 3.3 Europa IDE、JDK 6.0、GlassFish 2.0翻写的第一个EJB 3.0会话bean应用。注意:必须首先安装GlassFish服务器,可以通过安装NetBean 6.0(M9)来完成安装该服务器,或能单独安装也行,然后在...

    ejb3 第6讲--开发具有本地接口的无状态bean

    在本节讲解中,我们将深入探讨EJB3(Enterprise JavaBeans 3)中关于开发具有本地接口的无状态会话bean。无状态bean是EJB3中的一个关键组件,它们通常用于执行短暂、非持久化的业务逻辑,不维护任何会话状态。与有...

    java开发无状态EJB应用

    ### Java开发无状态EJB应用详解 #### 一、引言 无状态会话Bean(Stateless Session Bean)是企业级Java应用中的一个重要组件类型,主要用于处理业务逻辑。与有状态会话Bean不同,无状态会话Bean并不保存客户端状态...

    EJB3+JPA开发总结

    在EJB3中,开发无状态会话Bean变得非常简单。 ##### 1. 开发只存在Remote接口的无状态会话Bean **步骤如下:** **第一步**:定义一个包含所有业务方法的远程接口。该接口无需任何特定注解,类似于普通的Java接口...

    EJB的开发及应用,Session Bean的开发

    与Stateful Session Bean(有状态会话Bean)不同,它维护了客户端会话状态,而Stateless Session Bean(无状态会话Bean)则不保留任何客户端状态,每次调用都独立于其他调用。Session Bean主要用于表示业务逻辑,...

    实战EJB 实战EJB 实战EJB

    #### 三、实战EJB之二:开发会话Bean(无状态会话Bean) **什么是无状态SessionBean?** 无状态会话Bean是一种EJB组件类型,它不保留客户端之间的任何状态信息。每次客户端请求都会创建一个新的实例,这意味着每个...

    EJB3.1技术培训

    - **开发无状态会话Bean**: - 当开发一个只有Local接口的无状态会话Bean时,需要使用`@Local`注解声明接口是本地接口。 - 当开发一个只有Remote接口的无状态会话Bean时,需要使用`@Remote`注解声明接口是远程接口...

    EJB3入门例子

    4. **简化会话bean(Simplified Session Beans)**:EJB3的无状态会话bean(`@Stateless`)和有状态会话bean(`@Stateful`)更加易用,不再需要接口和Home接口,只需一个实现了业务逻辑的类即可。 5. **实体bean的...

    完整EJB3.0第一个HelloWord,

    总结来说,EJB3.0的第一个"Hello, World"项目展示了如何在EJB环境中创建、配置和使用无状态会话bean。通过这个项目,我们可以了解到EJB3.0的注解驱动特性和基本的项目结构。理解并掌握这些基础知识,将有助于进一步...

    ejb3实例源代码

    EJB 3中的会话Bean分为无状态(Stateless)和有状态(Stateful)两种。无状态会话Bean适用于简单、无上下文的操作,而有状态会话Bean能维护客户端的会话状态。 3. **消息驱动Bean(Message-Driven Beans)**:处理...

    Weblogic10 + EJB3入门教程

    本教程通过一个简单的例子介绍了如何使用WebLogic 10和EJB 3技术开发无状态会话Bean。从定义远程接口、创建业务对象到实现具体的会话Bean,再到最后的编译与打包,每一步都非常重要。掌握了这些基本步骤后,你可以...

    实战EJB_cn

    - **创建**:当客户端第一次调用无状态会话Bean时,容器创建一个新实例。 - **销毁**:在方法调用结束后,容器可能会销毁这个实例,或者将其保持一段时间以备后续使用。 **3.3 编写一个无状态的SessionBean程序** ...

    EJB入门课件(PPT)

    **开发无状态会话Bean** 无状态会话Bean是最常见的EJB类型,不维护与客户端的会话状态。它们适用于执行独立的计算任务或提供对数据库的无状态访问。文档将指导你如何定义无状态会话Bean接口和实现,以及如何调用其...

Global site tag (gtag.js) - Google Analytics