有状态会话Bean实验指导.doc_第1页
有状态会话Bean实验指导.doc_第2页
有状态会话Bean实验指导.doc_第3页
有状态会话Bean实验指导.doc_第4页
有状态会话Bean实验指导.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

开发EJB2.X的有状态会话Bean步骤1:新建名为CountBean的J2EE1.4工程。设置工程的源程序目录为src,目的目录output为bin。步骤2:在新建向导中,选择JBoss-IDE | EJB Components | Session Bean创建会话Bean。步骤3:设置Session Bean的各种参数,点击Finish 按钮,即可看到生成的EJB类框架代码。其中各参数解释如下:Source folder:源程序所在目录;Package:源程序的包名;Name:Session Bean类的类名;Superclass和Interfaces:取默认值即可;Select the type of the EJB:选择EJB的类型;Select the access of the EJB:选择EJB的接口类型,会话Bean通常是Remote接口;Which method stubs would you like to create? :EJB类要实现的方法,应选择Inherited abstract methods 和ejbCreate( ) method生命周期方法。步骤4:在Package Explorer中,利用EJB类的右键菜单添加商务方法。步骤5:设置Business方法的参数。完整的CountBean.java代码如下:package count;import java.rmi.RemoteException;import javax.ejb.EJBException;import javax.ejb.SessionBean;import javax.ejb.SessionContext;import javax.ejb.CreateException;public class CountBean implements SessionBean public int val;public void setSessionContext(SessionContext ctx)throws EJBException,RemoteException / TODO Auto-generated method stub System.out.println(setSessionContext();public void ejbRemove() throws EJBException, RemoteException / TODO Auto-generated method stub System.out.println(ejbRemove();public void ejbActivate() throws EJBException, RemoteException / TODO Auto-generated method stub System.out.println(ejbActivate();public void ejbPassivate() throws EJBException, RemoteException / TODO Auto-generated method stub System.out.println(ejbPassivate);public void ejbCreate(int val) throws CreateException / TODO Auto-generated method stubthis.val=val;System.out.println(ejbCreate();public int count() / TODO Auto-generated method stubSystem.out.println(count();return +val;步骤6:分别建立对应于Remote接口和Home接口的java接口文件。Remote接口代码如下:package count;import javax.ejb.EJBObject;import java.rmi.RemoteException;public interface Count extends EJBObjectpublic int count() throws RemoteException;Home接口的代码如下:package count;import javax.ejb.EJBHome;import javax.ejb.CreateException;import java.rmi.RemoteException;public interface CountHome extends EJBHomepublic Count create(int val)throws CreateException,RemoteException;结构如下:步骤7:在工程下建立Count子目录,作为没有打包的EJB模块。在Count子目录下,再新建count目录。步骤8:把bin目录中自动编译生成的class文件导入到count子目录下。步骤9:在Count子目录下建立META-INF子目录,并建立ejb-jar.xml 和jboss.xml 配置文件。ejb-jar.xml代码如下:Countcount.CountHomecount.Countcount.CountBeanStatefulContainerjboss.xml代码如下: Count Count 步骤10:在项目CountBean下建立一个ant的XML文件packaging-build.xml。在packaging-build.xml的右键菜单上执行ant命令,打包生成jar文件。packaging-build.xml代码如下:压缩完成提示信息如下:目录结构如下图:步骤11:启动jboss服务器,显示界面如下:把打包生成的Count.jar文件拷贝到C:jboss-4.0.4.GAserverdefaultdeploy路径下(不同机器,安装路径不同),jboss服务器如果成功部署该Count组件,则显示如下所示信息:步骤12:在新建向导中,利用向导JBoss-IDE | EJB Test Client 建立EJB客户机程序。步骤13:设置EJB客户机的各种参数。客户机代码如下:package count;import junit.framework.TestCase;import java.util.Hashtable;import javax.rmi.PortableRemoteObject;import javax.naming.Context;import javax.naming.InitialContext;public class TestCount extends TestCase public TestCount() super();protected count.CountHome home;protected Context getInitialContext() throws Exception Hashtable props = new Hashtable();props.put(Context.INITIAL_CONTEXT_FACTORY,erfaces.NamingContextFactory);props.put(Context.URL_PKG_PREFIXES,org.jboss.naming:erfaces);props.put(Context.PROVIDER_URL, jnp:/localhost:1099);Context ctx = new InitialContext(props);return ctx;protected count.CountHome getHome() throws Exception Context ctx = this.getInitialContext();Object o = ctx.lookup(Count);count.CountHome intf = (count.CountHome) PortableRemoteObject.narrow(o,count.CountHome.class);return intf;protected void setUp() throws Exception this.home = this.getHome();public void testCount() try Count count=new Count5; int countVal=0; System.out.println(Instantiating Beans .); for(int i=0;i5;i+) counti=this.home.create(countVal); countVal=counti.count(); System.out.println(countVal); Thread.sleep(500); System.out.println(Calling count() on Beans .); for(int i=0;i5;i+) countVal=counti.count(); System.out.println(countVal); Thread.sleep(500); for(int i=0;i5;i+) counti.remove(); catch(Exception e) e.printStackTrace(); 步骤14:运行客户机程序TestCount.java。出现错误信息是因为设置Contex的类没有找到。因为根据JBoss文档,Client目录的类库是专门为运行客户机程序设立的。简单的解决办法就是添加JBoss的Client目录下的所有类库到工程的路径中。步骤15:在工程的右键

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论