在<<带你走进EJB>>系列博文中,前面系列的文章已经为EJB做了很多的铺垫,我们的线路是逐渐的从宏观往细节入手.接下来将会从无状态会话Bean作为一个例子,通过这个例子了解EJB的过程.
运行EJB的服务器用的是Jboss.关于Jboss的相关内容读者可以自行查阅,这里不再赘述.
首先我们需要先建立一个EJB项目.
我们是要建立一个会话Bean,那么需要要先定义一个包含他所有业务方法的一个接口,在这里,这个接口跟我们普通的接口没有什么区别,也不需要任何的注释.
接口代码如下:FirstEjb
package com.tgb.ejb;
/**
* 第一个EJB接口
* @author jnqqls
*
*/
public interface FirstEjb {
public String SaySomething(String str);
}
接下来需要做的是实现上面所提到的接口,并且添加注释.在这里注释有两个@Stateless,@Remote.
@Stateless定义的是一个无状态的会话Bean.
@Remote定义的是这个无状态会话Bean的Remote接口.
下面是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中.
在启动Jboss的过程中观察一下输出界面,如果没有什么异常的话,发布成功.
发布成功之后,我们可以在jboss的管理平台对EJB的JNDI名称进行查看,地址如下: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具体代码上的实现.