无状态会话Bean实验指导.docx
《无状态会话Bean实验指导.docx》由会员分享,可在线阅读,更多相关《无状态会话Bean实验指导.docx(34页珍藏版)》请在冰豆网上搜索。
![无状态会话Bean实验指导.docx](https://file1.bdocx.com/fileroot1/2023-1/27/77703cfd-7a50-4183-9325-040dfcf427d4/77703cfd-7a50-4183-9325-040dfcf427d41.gif)
无状态会话Bean实验指导
开发EJB2.X的无状态会话Bean
步骤1:
新建名为HelloEJB的J2EE1.4项目。
设置工程的源程序目录为src,自动编译生成的class文件所在的目的目录output为bin。
步骤2:
在新建向导中,选择JBoss-IDE|EJBComponents|SessionBean创建会话Bean。
步骤3:
设置SessionBean的各种参数,点击Finish按钮,即可看到生成的EJB类框架代码。
步骤4:
在PackageExplorer(包资源管理器)中,利用EJB类的右键菜单添加商务方法。
步骤5:
设置Business方法的参数。
完整的HelloBean.java代码如下:
packagehello;
importjava.rmi.RemoteException;
importjavax.ejb.EJBException;
importjavax.ejb.SessionBean;
importjavax.ejb.SessionContext;
importjavax.ejb.CreateException;
/**
*@ejb.beanname="Hello"
*display-name="NameforHello"
*description="DescriptionforHello"
*jndi-name="ejb/Hello"
*type="Stateless"
*view-type="remote"
*/
publicclassHelloBeanimplementsSessionBean{
publicvoidsetSessionContext(SessionContextctx)
throwsEJBException,
RemoteException{
//TODO自动生成方法存根
}
publicvoidejbRemove()throwsEJBException,RemoteException{
//TODO自动生成方法存根
}
publicvoidejbActivate()throwsEJBException,RemoteException{
//TODO自动生成方法存根
}
publicvoidejbPassivate()throwsEJBException,RemoteException{
//TODO自动生成方法存根
}
/**
*Defaultcreatemethod
*@throwsCreateException
*@ejb.create-method
*/
publicvoidejbCreate()throwsCreateException{
//TODOAuto-generatedmethodstub
}
/**
*Businessmethod
*@ejb.interface-methodview-type="remote"
*/
publicjava.lang.StringsayHello(){
//TODOAuto-generatedmethodstub
return"HelloWorld!
——无状态会话Bean";
}
}
步骤6:
分别建立对应于Remote接口和Home接口的java接口文件。
Remote接口代码如下:
packagehello;
importjava.rmi.RemoteException;
importjavax.ejb.*;
publicinterfaceHelloextendsEJBObject
{
publicStringsayHello()throwsRemoteException;
}
Home接口的代码如下:
packagehello;
importjava.rmi.RemoteException;
importjavax.ejb.*;
publicinterfaceHelloHomeextendsEJBHome
{
publicHellocreate()throwsRemoteException,CreateException;
}
结构如下:
步骤7:
建立HelloEJB子目录,作为没有打包的EJB模块。
步骤8:
把class文件所在的bin目录下的整个hello文件夹导入到HelloEJB子目录下。
步骤9:
在HelloEJB子目录下创建调用EJB组件的JSP文件index.jsp。
index.jsp代码如下:
<%@pagecontentType="text/html;charset=GBK"%>
<%@pageimport="hello.*,javax.naming.*,javax.rmi.*"%>
DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
第一个EJB<%
Stringmessage=null;
try{
InitialContextic=newInitialContext();
Objectobj=ic.lookup("HelloEJB");
HelloHomehome=(HelloHome)PortableRemoteObject.narrow(obj,hello.HelloHome.class);
Hellohello=home.create();
message=hello.sayHello();
}catch(Exceptione){
e.printStackTrace();
}
%>
<%=message%>
步骤10:
在HelloEJB子目录下建立META-INF子目录,并建立ejb-jar.xml、jboss.xml、application.xml三个配置文件。
⑴ejb-jar.xml——部署描述文件。
ejb-jar.xml代码如下:
xmlversion="1.0"encoding="UTF-8"?
>
xmlns="
xmlns:
xsi="http:
//www.w3.org/2001/XMLSchema-instance"
xsi:
schemaLocation="
HelloEJB,myfirstejbprogram
HelloEJB
HelloEJB
hello.HelloHome
hello.Hello
hello.HelloBean
Stateless
Container
⑵jboss.xml——供应商特有文件。
jboss.xml代码如下:
xmlversion="1.0"encoding="UTF-8"?
>
HelloEJB
HelloEJB
⑶application.xml——J2EE应用的发布描述文件。
一个完整的企业应用包含EJB模块和WEB模块,在发布企业应用时,需要把它打成*.ear文件,在打包前必须配置application.xml文件,该文件存放于打包后的META-INF目录。
在application.xml文件中需要指定EJB模块和WEB模块的信息。
ear文件结构如下:
application.xml代码如下:
xmlversion="1.0"encoding="UTF-8"?
>
HelloEJBJ2EEApplication
HelloEJB.jar
HelloEJB.war
/HelloEJB
步骤11:
在HelloEJB子目录下建立WEB-INF子目录,并分别建立web.xml和jboss-web.xml两个web应用配置文件。
⑴web.xml——标准web配置文件
web.xml代码如下:
xmlversion="1.0"encoding="UTF-8"?
>
HelloEJB
Session
hello.HelloHome
hello.Hello
⑵jboss-web.xml——jboss的web配置文件
jboss-web.xml代码如下:
xmlversion="1.0"encoding="UTF-8"?
>
HelloEJB
HelloEJB
步骤12:
利用ant命令将J2EE程序打包为ear文件。
在工程的右键菜单上单击Properties命令,打开工程的属性菜单,选择PackagingConfigurations。
单击AddStandard按钮,选择ear类型。
因为要一次性打包生成EJB的jar文件、Web应用的war文件和J2EE应用的ear文件,因此要修改生成的packaging-build.xml文件代码,如下:
xmlversion="1.0"encoding="UTF-8"?
>
在packaging-build.xml的右键菜单上执行ant命令,打包生成jar文件。
压缩完成提示信息如下:
Eclipse中目录结构如下图:
打包生成的三个压缩文件目录结构如下:
步骤13:
启动jboss服务器,显示界面如下:
把打包生成的HelloEJB.ear文件拷贝到C:
\jboss-4.0.4.GA\server\default\deploy路径下(不同机器,安装路径不同),jboss服务器如果成功部署该HelloEJB组件,则显示如下所示信息:
步骤14:
运行结果如下:
在浏览器中输入http:
//localhost:
8080/HelloEJB/index.jsp