前几篇博客简单的介绍了EJB,下边我们来说一下我们该如何搭建一个EJB框架。本人搭建框架使用的Myeclipse10+jboss6.0。搭建这个框架只需要你的IDE支持EJB就可以了,但是并不是所有的服务器都支持EJB,Tomcat就不支持EJB的部署,而weblogic,WebSphere,JBoss都是支持的,因为JBoss是开源免费的的,所以我选择的服务器是JBoss服务器。
配置JBoss服务器,选择Windows—》Perference,然后选择Server—>JBossàJBoss6.x ,然后配置我们的jboss路径,并选择Enable。
选择JDK后,配置jdk的路径,至于jdk的版本,要选择支持jboss6的版本,可以自己百度一下如果用jboss6的话,jdk最好别低于1.6就可以了!这样我们的jboss就配置好了!
准备好服务器环境以后,我们直接创建EJB应用程序就可以了!直接Newà EJB Project,
名称为FirstEjb,j2ee版本选择javaEE5.0–EJB3.0 ,这次我们只考虑框架不使用JPA,所以持久化选择None。
服务端创建完毕后,目录结构如下!
我们创建一个接口,FirstEjb,
<span style="font-size:18px;">package com.tgb.ejb; public interfaceFirstEjb { public StringsaySomething(String name); }</span>
在添加一个实现类,该实现类添加注解,@Stateless表示该类是无状态bean,@Remote表示是远程调用。
@Stateless @Remote public classFirstEjbBean implements FirstEjb { public StringsaySomething(String name) { return "hi" + name; } }
这样我们的服务端就创建好了,我们直接部署到服务器上就可以了!而客户端的创建一样是非常的简单,我们需要建立一个普通的java项目,直接newàJavaProject,名称为FisrtEjb_Client。
我们还要为这个项目添加jar引用,简单的做法,我们建立一个自己的用户类库(如何建立请百度!),然后将jboss-6.1.0.Final\client 下的所有jar包先放入到类库中(其中可能有一些用不到,作为初学者,都放入就好可,就与哪些是有用的,哪些是没用的,以后在考虑)。在将类库引入到我们的项目中!最后我们要讲我们建立的EJB项目导出JAR包,然后在将该JAR包引入到我们的项目中!最终项目结构如图所示
我们在客户端要对服务器上发布的服务进行远程调用,所以要在客户端配置JNDI,配置如下, url地址,写服务器的地址,本地的写localhost。
<span style="font-size:18px;">java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces java.naming.provider.url=localhost</span>
建立一个本地测试类,Main函数就可以。
<span style="font-size:18px;"> public staticvoidmain(String[] args) throws Exception { //获取上下文对象 InitialContextinitialContext = newInitialContext(); //获取远程服务的,并进行强制转换 FirstEjbfirstEjb = (FirstEjb) initialContext.lookup("FirstEjbBean/remote"); //调用远程方法 String string=firstEjb.saySomething("hongjie"); System.out.println(string); }</span>
然后我们直接运行main方法,就可以看到控制台会打印出如下信息!就表明我们的调用成功了!EJB项目也就可以跑起来了!
EJB的学习,只是分布式的一个入门,在分布式的世界里,还有好多的东西需要学习,加油!