随笔-17  评论-64  文章-79  trackbacks-1
HelloWorld EJB代码编写


  1.编写主接口程序
  在文本编辑器中编辑HelloHome.java文件,并保存在C:\work\hello目录下,其代码为:
  //本接口需要引入的类或接口
  import java.rmi.RemoteException;
  import javax.ejb.CreateException;
  import javax.ejb.EJBHome;
  //定义主接口,必须继承EJBHome
  public interface HelloHome extends EJBHome {
   //定义EJB创建方法
   Hello create() throws CreateException, RemoteException;
  }
  2.编写远程接口程序
  在文本编辑器中编辑Hello.java文件,并保存在C:\work\hello目录下。Hello.java文件的代码为:
  //本接口需要引入的类或接口
  import javax.ejb.EJBObject;
  import java.rmi.RemoteException;
//定义远程接口,必须继承EJBObject
  public interface Hello extends EJBObject {
   //定义业务逻辑方法
   public String sayHello()
   throws RemoteException;
  }
3.编写Bean类实现程序
  在文件编辑器中编辑HelloBean.java文件,并保存在C:\work\hello目录下。HellloBean.java文件的代码为:
  //本类需要引入的类或接口
  import javax.ejb.CreateException;
  import javax.ejb.SessionBean;
  import javax.ejb.SessionContext;
  //实现业务逻辑,必须实现SessionBean接口
  public class HelloBean implements SessionBean {
   //这是个会话EJB,声明会话上下文
   private SessionContext ctx;
   //声明字符串
   private String words;
   //接口SessionBean中定义的方法,必须实现
   public void setSessionContext(SessionContext ctx) {
    this.ctx = ctx;
   }
   //接口SessionBean中定义的方法,必须实现
   public void ejbActivate() {
   }
   //接口SessionBean中定义的方法,必须实现
   public void ejbPassivate() {
   }
   //接口SessionBean中定义的方法,必须实现
   public void ejbRemove() {
   }
   //和主接口定义对应的方法,必须实现
   public void ejbCreate() throws CreateException {
    words = "Hello World";
   }
   //供客户端调用的业务逻辑方法,这里只简单的打印字符串,并把字符串返回到客户端
   public String sayHello()
   {
    System.out.println("I am in an EJB of Server ."+words);
    return words;
   }  }
(3) EJB代码编译
  首先打开命令窗口,进入C:\work\hello目录,运行环境变量脚本程序:
   c:\work\hello>c:\work\setEnv
  建立build目录:
   c:\work\hello>md build
  执行编译命令:
   c:\work\hello>java -d build Hello.java HelloHome.java HelloBean.java
  其中:-d build 表示编译生成的class文件放在build目录中。
(4)EJB部署文件编写
  部署文件是EJB的重要组成部分。简单地说,部署文件就是EJB的说明文件,这个文件由服务器容器使用,服务器根据部署文件的说明来管理EJB。
  EJB部署文件是标准的XML文件,必须遵守XML的语法规则。此外,还要遵守相关的DTD规则。
  部署文件到少有两个文件ejb-jar.xml和weblogic-ejb-jar.xml。前者为EJB自身的一些特征,如名称、组成等:后者是和EJB部署相关的描述。
  编写部署文件:
  (1)在文件编辑器中编辑ejb-jar.xml文件,并保存在C:\work\hello目录下。ejb-jar.xml文件的内容为:
<?xml version="1.0"?>
<!DOCTYPE ejb-jar PUBLIC '-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 1.1//EN' 'http://java.sun.com/j2ee/dtds/ejb-jar_1_1.dtd'>
<!--EJB说明文件-->
<ejb-jar>
<small-icon>images/green-cube.gif</small-icon>
<enterprise-beans>
<!--定义会话EJB-->
<session>
<small-icon>images/orange-cube.gif</small-icon>
<!--定义会话EJB名-->
<ejb-name>MyFirstEJB</ejb-name>
<!--定义会话EJB主接口名-->
<home>HelloHome</home>
<!--定义会话EJB远程接口名-->
<remote>Hello</remote>
<!--定义会话EJB实现类名-->
<ejb-class>HelloBean</ejb-class>
<!--定义会话EJB类型-->
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
</session>
</enterprise-beans>
<!--定义会话EJB装配描述-->
<assembly-descriptor>
<container-transaction>
<method>
<ejb-name>MyFirstEJB</ejb-name>
<method-intf>Remote</method-intf>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
</assembly-descriptor>
</ejb-jar>
  (2)在文件编辑器中编辑weblogic-ejb-jar.xml文件,并保存在C:\work\hello目录下。weblogic-ejb-jar.xml文件的内容为:
<?xml version="1.0"?>
<!DOCTYPE weblogic-ejb-jar PUBLIC '-//BEA Systems, Inc.//DTD WebLogic 5.1.0 EJB//EN' 'http://www.bea.com/servers/wls510/dtd/weblogic-ejb-jar.dtd'>
<!--EJB部署说明文件-->
<weblogic-ejb-jar>
<weblogic-enterprise-bean>
<!--EJB名-->
<ejb-name>MyFirstEJB</ejb-name>
<!--定义EJB最大缓冲池-->
<caching-descriptor>
<max-beans-in-free-pool>100</max-beans-in-free-pool>
</caching-descriptor>
<!--定义EJB jndi名称-->
<jndi-name>HelloHome</jndi-name>
</weblogic-enterprise-bean>
</weblogic-ejb-jar>
(5) 打包
  把上面开发的所有文件打成jar文件包。这些文件包括一三个类文件:Hello.class、HelloHome.class、HelloBean.class和部署文件:ejb-jar.xml,weblogic-ejb-jar.xml。打包时,文件放置的位置是严格要求的。具体为:*.class文件放在当前目录(即C:\work\hello\build目录下),部署文件必须入在下一级目录Meta-inf中(即C:\work\hello\build\Meta-inf目录下)。如果EJB包含图像文件,则图像文件必须在build目录的下一级目录images中(即C:\work\hello\build\images目录下)。
  具体操作步骤为:
  (1)在build目录中创建Meta-inf目录,当前路径为C:\work\hello,执行:
   c:\work\hello>md build\Meta-inf
  (2)把部署文件拷贝到hello\Meta-inf目录下:
   c:\work\hello>copy *.xml build\Meta-inf
  (3)执行:
   c:\work\hello>md build\images
   c:\work\hello>copy *.gif build\images
  当然,本例中没有使用图像文件,所以可以免去此步骤。
  (4)用jar命令在build目录下打包。当前路径是c:\work\hello,运行:
   c:\work\hello>cd build
   c:\work\hello\bulid>jar cv0f std_myfirstejb_hello.jar META-INF *.class images
   c:\work\hello\build>cd..
  其中:jar是Jdk中的打包命令:cv0f是命令参数;std_myfirstejb_hello.jar是生成的文件名,由用户指定。
  命令执行完后,在目录build中应该生成文件std_myfirstejb_hello.jar。
  至此,打包完成。
(6)编译生成窗口代码
  Weblogic Server提供了编译生成容器代码的工具,它是一个java程序weblogic.ejbc。在命令行窗口中执行:
  c:\work\hello>java weblogic.ejbc -compiler javac build\std_myfirstejb_hello.jar build\myfirstejb_hello.jar
  可以看出ejbc把std_myfirstejb_hello.jar文件编译成myfirstejb_hello.jar,它包括了Weblogic Server平台可以识别的ejb容器代码。
  如果运行成功,则在build目录下产生myfirstejb_hello.jar文件。

posted on 2007-03-23 21:33 飞鸟 阅读(591) 评论(0)  编辑  收藏 所属分类: Struts

只有注册用户登录后才能发表评论。


网站导航: