跳转到主内容
思享编程网:思考分享,玩转编程世界!

EJB开发,怎么一步步来?

大家好,我是陆砚码,今天我们来聊聊EJB开发这个话题。EJB(Enterprise JavaBeans)是一种用于开发企业级应用程序的Java技术。那么,EJB开发的具体步骤是怎样的呢?读完这篇文章,你就能对这个流程有一个清晰的认识。

一、开发EJB的步骤

1. **开发编译业务接口和Bean类**

  • (1) 编写业务接口和Bean类
  • (2) 编译

2. **打包部署到JNDI服务器**

  • (3) 提供部署描述文件
  • (4) 打包(编译后的字节码文件和部署描述文件)成ejb-jar
  • (5) 部署ejb-jar到容器

3. **测试**

  • (6) 检测部署是否成功(看容器是否发现)
  • (7) 识别客户端程序来调用EJB

业务接口(Business Interface)

(1) 对客户端暴露可以调用的方法,它是一个普通的Java接口,POJO类,或POJI。

(2) 业务接口可以划分为两类:

  • A、远程业务接口
  • B、本地业务接口

如果客户端和EJB运行在同一个JVM中,我们应该用本地接口,否则只能用远程业务接口。

Bean类(The Bean Class)

(1) Bean类也是一个POJO,实现了业务接口中的方法

(2) 在Bean类中一般带有标注(Annotation),用于代替传统的部署描述文件

  • @stateless 无状态(标注该类是一个无状态的会话Bean)
  • @Remote(XXX.class)(标注该Bean类的业务接口是XXX.class)

(3) Bean类要有缺省的构造方法

(4) Bean类可以不实现业务接口(因为标注已经说明),不过建议实现

(5) ejb-jar.xml(Optional)标准的部署描述文件

我们可以用EJB3.0中的标注来代替对描述文件的编写。

EJB3.0部署描述文件示例

<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" metadata-complete="true" version="3.0" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd">
  <enterprise-beans>
    <session>
      <display-name>HelloBean</display-name>
      <ejb-name>HelloBean</ejb-name>
      <business-remote>test.HelloRemote</business-remote>
      <ejb-class>test.HelloBean</ejb-class>
      <session-type>Stateless</session-type>
      <transaction-type>Container</transaction-type>
      <security-identity>
        <use-caller-identity/>
      </security-identity>
    </session>
  </enterprise-beans>
</ejb-jar>

EJB Client(客户端)

(1) EJB不能被客户端直接访问,客户端必须通过业务接口来调用EJB

(2) EJB客户端分为两类:

  • A、EJB客户端与EJB运行在同一个容器中→本地业务接口
  • B、EJB客户端与EJB运行在不同的JVM中→远程业务接口

EJB 容器(EJB Container)

(1) EJB容器是一个运行在JVM上的程序

(2) EJB容器为EJB提供中间件服务。

EJB客户端的编程步骤

  • 1、运行客户端前要加上在SUN的服务器文件夹中的lib下的javaee.jar和appserv-rt.jar
  • 2、配置系统的JNDI的环境(客户端所依赖的Object和Sun运行环境)
  • 3、写测试类,注意在测试类中也要有业务接口

Step1:设置JNDI服务器入口信息( system.setProperty)

Step2:初始化上下文

Step3:查找JNDI服务器的Stub

Step4:调用对象

EJB调用过程

(1) EJB容器将Stub绑定到JNDI服务器上,JNDI上使用的绑定(默认情况下)是远程业务接口的全限定名。

(2) 客户端通过上下文(Context)的方法来查找JNDI服务器上绑定的Stub。

注意:EJB一定要先部署到服务器,EJB需要部署环境才能运行

EJB客户端示例

public class Cilent {
  public static void main(String[] args) throws NamingException {
    System.setProperty("jndi.factory","com.sun.jndi.cosnaming.CNCtxFactory");
    System.setProperty("jndi.provider.url","corbaloc::localhost:3007/NameSpace");
    Context ctx=new InitialContext();
    HelloRemote hello=(HelloRemote)ctx.lookup("test.HelloRemote");
    System.out.println(hello.hello());
    System.out.println(hello.helloword("lichen"));
  }
}

注意:在写客户端时,要引入javaee.jar和appser-rt.jar还要引入已经编译好的EJB的jar文件。

好了,今天的内容就到这里,希望这篇文章能帮助你更好地理解EJB开发流程。如果你对EJB还有其他疑问,欢迎在评论区留言交流。我是陆砚码,我们下期再见!

——来自「思享编程网」(www.sxgpb.com)的陆砚码

相关文章