带你走进EJB--EJB实例

    在<<带你走进EJB>>系列博文中,前面系列的文章已经为EJB做了很多的铺垫,我们的线路是逐渐的从宏观往细节入手.接下来将会从无状态会话Bean作为一个例子,通过这个例子了解EJB的过程.

         运行EJB的服务器用的是Jboss.关于Jboss的相关内容读者可以自行查阅,这里不再赘述.

        首先我们需要先建立一个EJB项目.

计算机生成了可选文字:画NeW口}x)SglgctaWIZaFdCreateanEJBprojectWiZaFdS:…竺.匠卜EJB…。当。Bproject…赌EJBTimer份EJB3MessageDriven份EJB3SessionBean巨落Message一DrivenBean嘴SessionBean(EJB3.x)Bean(EJB3.x)②Next全CanCel

       我们是要建立一个会话Bean,那么需要要先定义一个包含他所有业务方法的一个接口,在这里,这个接口跟我们普通的接口没有什么区别,也不需要任何的注释.

       接口代码如下:FirstEjb

 

		package com.tgb.ejb;
		/**
		 * 第一个EJB接口
		 * @author jnqqls
		 *
		 */
		public interface FirstEjb {
			public String SaySomething(String str);
		}


 

      接下来需要做的是实现上面所提到的接口,并且添加注释.在这里注释有两个@Stateless,@Remote.

      @Stateless定义的是一个无状态的会话Bean.

      @Remote定义的是这个无状态会话BeanRemote接口.

      下面是FirstEjb会话Bean的具体代码:

 

	package com.tgb.ejb;
	
	import javax.ejb.Remote;
	import javax.ejb.Stateless;
	
	@Stateless(name="FirstEjbBean")
	@Remote(FirstEjb.class)
	public class FirstEjbBean implements FirstEjb {
	
		/**
		 * 第一个Ejb例子
		 */
		public String SaySomething(String str) {
			
			return "你好"+str;
		}
	
	}


 

       至此,只存在一个Remote接口的无状态会话Bean我们已经开发完成,无状态的会话Bean是一个简单的POJO,EJB3.0容器能够自动的实例化以及管理这个Bean.

       开发完毕之后我们将此会话Bean发布到Jboss.

计算机生成了可选文字:馏糕黑赢念梦Debug巴JUni,l_【Started,Synchronized」必句b一1ISynchronized]国XMLConfiguration凰Filesets

 

在启动Jboss的过程中观察一下输出界面,如果没有什么异常的话,发布成功.

 

计算机生成了可选文字:[SessionspecContainer]Startinqjboss.jZee:jar=profileservice一secured.jar,na!ne=SecureProfileservice,service=E正3[E正container]sTARTEDE正:orq.jboss.profileservice.ejb.secureProfileserviceBeanejbNaxne:SecureProfileservice[JndisessionReqistrarBase]BindinqthefollowinqEntriesinGlobalJNDI:ileservice/remote一EJB3.xDefaultRelnoteBusinessInterfaceileservice/remote一orq.jboss.profi1eservice.spi.Profileservice一E正3.xRemoteBusiness工nterface[TomcatDeployment]deploy,ctxPath=/admin一console[confiq]InitializinqMojarra(1.212一bol一FCS)forcontext'/adlnin一console'[TomcatDeployment]deploy,ctxPath=/[TomcatDeployment]deploy,ctxPath=/jmx一console[HttpllProtocol]StartinqCoyoteHTTP/1.1onhttp一127.0.0.1一8080[AjpProtocol]StartinqCoyoteAJP/1.3onajp一127.0.0.1一8009[Serverlmpl]JBoss(Microcontainer)[5.1.0.GA(build:SVNTaq=正055510GAdate=200905221634)]Startedin305:slZIns

    

          发布成功之后,我们可以在jboss的管理平台对EJBJNDI名称进行查看,地址如下:http://localhost:8080/jmx-console/  .

        

         至此我们的EJB已经发布成功,同时作为一个服务存在与Jboss容器中.接下来我们会介绍如何通过客户端来访问我们所发布的EJB.

        这里需要进一步解释一下,当我们把一个无状态的会话Bean发布到容器的时候,EJB容器会创建一个对象,并且把对象注册到JNDI目录里.客户端可以通过JNDI找到该对象,通过此对象我们就可以调用具体的业务方法.

     所以在客户端我们需要提供JNDI的相关信息,而这些信息都放在了jndi.properties文件中,此文件放在客户端的根目录下.文件内容如下.

 

java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
java.naming.provider.url=localhost


 

     接下来建立客户端:ejb_01_client

	package com.tgb.ejb;
	
	import javax.naming.InitialContext;
	
	public class FirstEjbClient {
	
		/**
		 * @param args
		 */
		public static void main(String[] args) throws Exception{
			InitialContext context = new InitialContext();
			FirstEjb ejb = (FirstEjb)context.lookup("FirstEjbBean/remote");
			String s = ejb.SaySomething("jnqqls");
			System.out.println(s);
		}
	
	}

 

运行客户端便可以看到结果.读者可以自己尝试一下.

 以上的过程是EJB实例的一个简单的实现.通过此实例我们能够了解EJB具体代码上的实现.

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值