无状态会话Bean实验指导Word文档下载推荐.docx
《无状态会话Bean实验指导Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《无状态会话Bean实验指导Word文档下载推荐.docx(34页珍藏版)》请在冰豆网上搜索。
DescriptionforHello"
*jndi-name="
ejb/Hello"
*type="
Stateless"
*view-type="
remote"
*/
publicclassHelloBeanimplementsSessionBean{
publicvoidsetSessionContext(SessionContextctx)
throwsEJBException,
RemoteException{
//TODO自动生成方法存根
}
publicvoidejbRemove()throwsEJBException,RemoteException{
publicvoidejbActivate()throwsEJBException,RemoteException{
publicvoidejbPassivate()throwsEJBException,RemoteException{
/**
*Defaultcreatemethod
*@throwsCreateException
*@ejb.create-method
publicvoidejbCreate()throwsCreateException{
//TODOAuto-generatedmethodstub
*Businessmethod
*@ejb.interface-methodview-type="
publicjava.lang.StringsayHello(){
return"
HelloWorld!
——无状态会话Bean"
;
}
步骤6:
分别建立对应于Remote接口和Home接口的java接口文件。
Remote接口代码如下:
importjavax.ejb.*;
publicinterfaceHelloextendsEJBObject
{
publicStringsayHello()throwsRemoteException;
Home接口的代码如下:
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"
>
html>
head>
metahttp-equiv="
Content-Type"
content="
charset=GBK"
title>
第一个EJB<
/title>
/head>
body>
%
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();
%>
h1>
%=message%>
/h1>
/body>
/html>
步骤10:
在HelloEJB子目录下建立META-INF子目录,并建立ejb-jar.xml、jboss.xml、application.xml三个配置文件。
⑴ejb-jar.xml——部署描述文件。
ejb-jar.xml代码如下:
?
xmlversion="
1.0"
encoding="
UTF-8"
ejb-jarversion="
2.1"
xmlns="
xmlns:
xsi="
http:
//www.w3.org/2001/XMLSchema-instance"
xsi:
schemaLocation="
description>
HelloEJB,myfirstejbprogram<
/description>
display-name>
HelloEJB<
/display-name>
enterprise-beans>
session>
ejb-name>
/ejb-name>
home>
hello.HelloHome<
/home>
remote>
hello.Hello<
/remote>
ejb-class>
hello.HelloBean<
/ejb-class>
session-type>
Stateless<
/session-type>
transaction-type>
Container<
/transaction-type>
/session>
/enterprise-beans>
/ejb-jar>
⑵jboss.xml——供应商特有文件。
jboss.xml代码如下:
jboss>
jndi-name>
/jndi-name>
/jboss>
⑶application.xml——J2EE应用的发布描述文件。
一个完整的企业应用包含EJB模块和WEB模块,在发布企业应用时,需要把它打成*.ear文件,在打包前必须配置application.xml文件,该文件存放于打包后的META-INF目录。
在application.xml文件中需要指定EJB模块和WEB模块的信息。
ear文件结构如下:
application.xml代码如下:
application>
<
HelloEJBJ2EEApplication<
module>
<
ejb>
HelloEJB.jar<
/ejb>
/module>
web>
<
web-uri>
HelloEJB.war<
/web-uri>
context-root>
/HelloEJB<
/context-root>
/web>
/application>
步骤11:
在HelloEJB子目录下建立WEB-INF子目录,并分别建立web.xml和jboss-web.xml两个web应用配置文件。
⑴web.xml——标准web配置文件
web.xml代码如下:
web-app>
ejb-ref>
ejb-ref-name>
/ejb-ref-name>
ejb-ref-type>
Session<
/ejb-ref-type>
/ejb-ref>
/web-app>
⑵jboss-web.xml——jboss的web配置文件
jboss-web.xml代码如下:
jboss-web>
/jboss-web>
步骤12:
利用ant命令将J2EE程序打包为ear文件。
在工程的右键菜单上单击Properties命令,打开工程的属性菜单,选择PackagingConfigurations。
单击AddStandard按钮,选择ear类型。
因为要一次性打包生成EJB的jar文件、Web应用的war文件和J2EE应用的ear文件,因此要修改生成的packaging-build.xml文件代码,如下:
projectname="
PackagingGenerator"
default="
_packaging_generation_"
targetname="
depends="
N65604,N65563,N65540"
/>
N65604"
description="
HelloEJB.jar"
jardestfile="
filesetdir="
includename="
hello/*.class"
/fileset>
metainfdir="
HelloEJB/META-INF"
jboss.xml"
ejb-jar.xml"
/metainf>
/jar>
/target>
N65563"
HelloEJB.war"
wardestfile="
webxml="
HelloEJB/WEB-INF/web.xml"
WEB-INF/jboss-web.xml"
index.jsp"
/war>
N65540"
HelloEJB.ear"
"
META-INF/application.xml"
/project>
在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