|
|
到此,我们就编写完成了我们的CMP实体Bean,它很长,关键长在我们要自己去实现大部分的同步数据库的方法。到了下一节,我们可以看到,这些方法在CMP中全不用自己实现,由容器来实现。下面我们来布署它并编写一个RMI-IIOP客户端来测试我们的实体Bean。
三、范例BMP实体的部署与测试
要布署我们的BMP,首先我们来编写布署描述符,它包括两个部分:一个是标准的ejb2.0规范的ejb-jar.xml文件,另一个是特定容器的如我们的JBOSS的布署描述符文件。
进入C:JBOSSmyprojectAccountBMPejbaccount.jarMETA-INF目录,新建一个ejb-jar.xml文件,内容如下:
<?xml version="1.0" encoding="gb2312"?>
<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN"
"http://java.sun.com/dtd/ejb-jar_2_0.dtd">
<ejb-jar>
<enterprise-beans>
<entity>
<ejb-name>Account</ejb-name>
<home>account.ejb.AccountHome</home>
<remote>account.ejb.Account</remote>
<ejb-class>account.ejb.AccountBean</ejb-class>
<persistence-type>Bean</persistence-type>
<prim-key-class>account.ejb.AccountPK</prim-key-class>
<reentrant>False</reentrant>
</entity>
</enterprise-beans>
<assembly-descriptor>
<container-transaction>
<method>
<ejb-name>Account</ejb-name>
<method-intf>Remote</method-intf>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
</assembly-descriptor>
</ejb-jar>
描述符中,元素persistence-type指明我们采用的是Bean管理的持久化的Bean,如果是容器管理的,则设置为Container。元素prim-key-class指明主键类。元素reentrant指明Bean是否可以通过另一个Bean来调用其自身,如BeanA调用BeanB,BeanB又返回调用BeanA,这种情况我们称为BeanA是可重入的,这是执行路径的自循环,如果我们想支持这种重入,此处就写为True,我们不想支持这种重入,所以写作False。元素assembly-descriptor将Bean和事务联系起业,我们在这里不讲。
同样,在C:JBOSSmyprojectAccountBMPejbaccount.jarMETA-INF目录新建一个jboss-service.xml文件,这是JBOSS容器特有的描述符文件,它的内容如下:
<?xml version="1.0" encoding="gb2312"?>
<jboss>
<enterprise-beans>
<entity>
<ejb-name>Account</ejb-name>
<jndi-name>Account</jndi-name>
</entity>
<secure>true</secure>
</enterprise-beans>
<reource-managers/>
</jboss>
它描述了我们在客户端如何通过jndi来调用这个实体Bean的信息。
接着,我们进入src目录,将我们的Bean类编译出来,进入src目录,执行:
com *.java (注意:com.bat是我们在此系列教程第一节中编写的编译批处理文件)
在src目录目录产生了一系列的.class文件,我们把这些文件全都移到:
C:JBOSSmyprojectAccountBMPejbaccount.jaraccountejb目录中准备发布它。
发布EJB,我们将accoun.jar目录整个拷贝到JBOSS的服务器布署目录:
C:JBOSSserveralldeploy中,启动JBOSS服务器,如果启动过程中没有抛出异常,则说明我们的实体Bean发布成功。
下面我们来编写一个客户端测试程序来测试我们的BMP实体BEAN,进入src目录,编写AccountClient.java文件,内容如下:它是自解释的。
package account.ejb;
import javax.ejb.*;
import javax.naming.*;
import java.rmi.*;
import javax.rmi.*;
import java.util.*;
import java.io.*;
public class AccountClient{
public static void main(String[] args) throws Exceptio
上一页 [1] [2] [3] [4] [5] [6] 下一页
网友评论:(评论内容只代表网友观点,与本站立场无关!) |
阅读排行
|