您的位置:首页 > 其它

Ejb—开发模型与实例

2015-02-14 16:46 423 查看

1. 开发模型

  这里用最简洁的一个Ejb项目模型来简介Ejb的开发过程与调用原理。粗略的开发过程如下:

  Ø 首先,新建Ejb项目,并部署到JBoss服务器(作为服务端)。

  Ø 然后,新建普通Java项目作为客户端。(客户端的概念是相对的,它可以是任何类型的项目,包括可以是另一个Ejb项目)

  Ø 最后,将Ejb项目中的接口打包为jar包,并添加到客户端,客户端即可以通过InitialContext来查找到Ejb,并调用Ejb的方法。

如下图所示:

  


2. 实例源码如下

  服务端

  新建Ejb项目,添加一个接口,与一个接口的实现:

  接口:

public interface FirstEjb {
public String saySomething(String name);
}


  实现:

@Stateless
@Remote
public class FirstEjbBean implements FirstEjb {
public String saySomething(String name) {
return "你好," + name;
}
}


  接口的实现上有两个注解,表示这个SessionBean是一个无状态的,远程Bean。至于有状态、无状态SessionBean或是远程、本地SessionBean的概念将在后面进行介绍。

  客户端

  开发客户端的步骤如下:

  1、首先创建普通java项目

  2、将客户端的依赖包添加到项目的类路径中【* JBOSS_HOME/client/*.jar】

  3、将上面服务端的接口打成jar包然后添加到客户端(为了操作方便不打jar包,可以直接将EJB项目添加到客户端项目中(目的是为了能够使用EJB的接口))

  4、客户端在类路径(src)下添加jndi.properties文件(源码如下),这是为了客户端的应用程序能够使用JNDI来查找EJB对象

  5、客户端即可以通过InitialContext接口来查找EJB,并调用EJB的方法!

  *EJB的JNDI命名是:EJB实现类的名称/访问方式

  源码:

  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


  测试类(FirstEjbClient):

public class FirstEjbClient {
public static void main(String args[]) throws Exception {
InitialContext context = new InitialContext();
FirstEjb firstEjb = (FirstEjb) context.lookup("FirstEjbBean/remote");
String s = firstEjb.saySomething("kobe");
System.out.println(s);
}
}


  可以看到客户端通过InitialContext()加载配置文件的(jndi.properties),然后根据配置文件即可通过JNDI查找到Ejb,并调用Ejb的方法。

3. 总结

  EJB是sun的JavaEE服务器端组件模型,设计目标与核心应用是部署分布式应用程序。SessionBean用于实现业务逻辑,它可以是有状态的,也可以是无状态的。每当客户端请求时,容器就会选择一个SessionBean来为客户端服务。SessionBean可以直接访问数据库,但更多时候,它会通过EntityBean实现数据访问。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: