您的位置:首页 > 编程语言 > Java开发

Eclipse3.1.1+jboss4.0.5开发J2EE中的EJB(无状态会话Bean)

2008-05-02 01:02 579 查看
软件环境:Eclipse3.1.1+JBoss4.0.5+JBossIDE1.6.0+Lomboz
1,利用Lomboz J2EE Project新建名为j2eetest的项目,单击下一步,在源代码选项卡,单击添加文件夹,命名为src,在弹出对话框中单击确定,再单击一下步,在Targeted Servers下拉列表选择JBOSS 4.0.5( 此为Lomboz插件Server配置文件),并单击右侧添加,在Web Modules选项卡新建名为j2eeweb的Module,在Ejb Modules选项卡下新建名为j2eeejb的Module,最后单击完成按钮完成项目新建.
2,右击项目j2eetest,利用Lomboz Ejb Creation Wizard新建名为EjbTest的Ejb,源文件夹为:j2eetest/src,包为:j2ee,名称为:EjbTest,其他项缺省.单击完成Ejb新建.
3,右击EjbTest,在弹出菜单Lomboz J2ee上下文中选择”Add Lomboz Method”添加名为getInfo的方法,完整方法描述为:public String getInfo(),将其中”return null”修改为”return “I am Benson””.
4,右击EjbTest,在弹出菜单”Lomboz J2EE”上下文中选择”Add Ejb to Module”
5,右击Ejb模块j2eeejb,在弹出菜单中”Lomboz J2EE”上下文选择”Generate Ejb Classes”,若出现”BUILD SUCCESSFULLY”则表示部署成功.
6, 右击Ejb模块j2eeejb,在弹出菜单中”Lomboz J2EE”上下文选择”deploy Module”,若出
7,右击EJB模块j2eeejb,利用”Lomboz EJB Test Client Wizard”编写客户端测试EJB,源文件夹为j2eetest/src,包为:j2ee,超类缺省,EJB类名为,Test,Ejb Home为:j2ee.EjbTestHome,Ejb Interface为j2ee.EjbTest(注意:Ejb Home和Ejb Interface一定要人为输入,单击右侧Browse按钮无效),Target Server为:JBOSS 4.0.5.
8,打开Test.java文件,在注释//System.out.println(myBean.callYourMethod());后插入System.out.println(myBean.getInfo());并保存.
9,通过外部安装的Jboss安装目录下的bin/run.bat启动Jboss,(本人配置的Lomboz J2EE View中Run Server不能启动JBoss,但是能Stop Server.注意:通过外部启动一样达到目的 ).
10,待CMD界面呈现:Started in 1m:33s:453ms字样时,说明服务器已启动,右击Test.java文件,在弹出菜单”运行方式”上下文菜单中选择”Java应用程序”,若控制台出现文本:I am Benson,则说明测试成功.笔者在测试成功前出现异常信息:
Javax.naming.nameNotFoundException:***Ejb not bound,从字面上看很明显是JNDI(未绑定)问题,许多网友从上下文命名调查,因为所有配置文件自动生成相关资源,不可能有代码错误.这里主要是Lomboz配置JBoss405.server资源时,在Client ClassPath少添加了类库jbossall-client.jar,但是并不是所有Ejb not bound问题都是因为缺少类库引起的.为方便大家对比,我把. JBoss405.server文本粘贴如下:

<serverDefinition
name="JBOSS 4.0.5"
ejbModules="true"
webModules="true"
earModules="true">
<property id="serverRootDirectory"
label="Application Server Directory:"
type="directory"
default="D:/jboss-4.0.5" />
<property id="serverAddress"
label="Address:"
type="string"
default="127.0.0.1" />
<property id="serverPort"
label="Port:"
type="string"
default="8080" />
<property id="serverConfig"
label="Server Configuration (minimal/default/all):"
type="string"
default="default" />
<property id="classPathVariableName"
label="Classpath Variable Name:"
type="string"
default="JBOSS405" />
<property id="classPath"
label="Classpath Variable:"
type="directory"
default="D:/jboss-4.0.5" />
<serverHome>${serverRootDirectory}</serverHome>
<webModulesDeployDirectory>${serverRootDirectory}/server/${serverConfig}/deploy</webModulesDeployDirectory>
<ejbModulesDeployDirectory>${serverRootDirectory}/server/${serverConfig}/deploy</ejbModulesDeployDirectory>
<earModulesDeployDirectory>${serverRootDirectory}/server/${serverConfig}/deploy</earModulesDeployDirectory>
<jndiInitialContextFactory>org.jnp.interfaces.NamingContextFactory</jndiInitialContextFactory>
<jndiProviderUrl>jnp://${serverAddress}:1099</jndiProviderUrl>
<startClass>org.jboss.Main</startClass>
<startWorkingDirectory>${serverRootDirectory}/bin</startWorkingDirectory>
<startVmParameters></startVmParameters>
<startProgramArguments>-c ${serverConfig}</startProgramArguments>
<stopClass>org.jboss.Shutdown</stopClass>
<stopWorkingDirectory>${serverRootDirectory}/bin</stopWorkingDirectory>
<stopVmParameters></stopVmParameters>
<stopProgramArguments>-S</stopProgramArguments>
<serverClassPath>
<jar type="variable">JDK_TOOLS</jar>
<jar type="variable">${classPathVariableName}/bin/run.jar</jar>
<jar type="variable">${classPathVariableName}/bin/shutdown.jar</jar>
<jar type="variable">${classPathVariableName}/lib/jboss-system.jar</jar>
<jar type="variable">${classPathVariableName}/lib/concurrent.jar</jar>
<jar type="variable">${classPathVariableName}/server/${serverConfig}/lib/jboss.jar</jar>
<jar type="variable">${classPathVariableName}/server/${serverConfig}/lib/jnpserver.jar</jar>
<jar type="variable">${classPathVariableName}/server/${serverConfig}/lib/jpl-pattern.jar</jar>
<jar type="variable">${classPathVariableName}/server/${serverConfig}/lib/jpl-util.jar</jar>
<jar type="variable">${classPathVariableName}/server/${serverConfig}/lib/jboss-transaction.jar</jar>
<jar type="variable">${classPathVariableName}/server/${serverConfig}/lib/bcel.jar</jar>
<jar type="variable">${classPathVariableName}/lib/jdom.jar</jar>
<jar type="variable">${classPathVariableName}/lib/xercesImpl.jar</jar>
<jar type="variable">${classPathVariableName}/lib/xml-apis.jar</jar>
<jar type="variable">${classPathVariableName}/lib/gnu-regexp.jar</jar>
<jar type="variable">${classPathVariableName}/lib/getopt.jar</jar>
<jar type="variable">${classPathVariableName}/server/default/lib/jboss-j2ee.jar</jar>
<jar type="variable">${classPathVariableName}/server/default/lib/javax.servlet.jar</jar>
</serverClassPath>
<clientClassPath>
<jar type="variable">${classPathVariableName}/client/jboss-j2ee.jar</jar>
<jar type="variable">${classPathVariableName}/client/jnp-client.jar</jar>
<jar type="variable">${classPathVariableName}/client/jboss-client.jar</jar>
<jar type="variable">${classPathVariableName}/client/jboss-common-client.jar</jar>
<jar type="variable">${classPathVariableName}/client/jbosssx-client.jar</jar>
<jar type="variable">${classPathVariableName}/client/log4j.jar</jar>
<jar type="variable">${classPathVariableName}/server/default/lib/jnpserver.jar</jar>
<jar type="variable">${classPathVariableName}/client/jmx-client.jar</jar>
<jar type="variable">${classPathVariableName}/client/namespace.jar</jar>
<jar type="variable">${classPathVariableName}/client/jboss-xml-binding.jar</jar>
<jar type="variable">${classPathVariableName}/client/jbossall-client.jar</jar>
</clientClassPath>
<projectClassPath>
<jar type="variable">JDK_TOOLS</jar>
<jar type="variable">${classPathVariableName}/bin/run.jar</jar>
<jar type="variable">${classPathVariableName}/bin/shutdown.jar</jar>
<jar type="variable">${classPathVariableName}/server/${serverConfig}/lib/javax.servlet.jar</jar>
<jar type="variable">${classPathVariableName}/lib/jboss-system.jar</jar>
<jar type="variable">${classPathVariableName}/lib/concurrent.jar</jar>
<jar type="variable">${classPathVariableName}/server/${serverConfig}/lib/jboss.jar</jar>
<jar type="variable">${classPathVariableName}/server/${serverConfig}/lib/jnpserver.jar</jar>
<jar type="variable">${classPathVariableName}/server/${serverConfig}/lib/jpl-pattern.jar</jar>
<jar type="variable">${classPathVariableName}/server/${serverConfig}/lib/jpl-util.jar</jar>
<jar type="variable">${classPathVariableName}/server/${serverConfig}/lib/jboss-transaction.jar</jar>
<jar type="variable">${classPathVariableName}/server/${serverConfig}/lib/bcel.jar</jar>
<jar type="variable">${classPathVariableName}/server/default/lib/jboss-j2ee.jar</jar>
</projectClassPath>
<adminTool>
<web><deploy /><undeploy />
</web>
<ejb><deploy /><undeploy />
</ejb>
<ear><deploy /><undeploy />
<webModule><deploy /><undeploy />
</webModule>
<ejbModule><deploy /><undeploy />
</ejbModule>
</ear>
</adminTool>
<adminToolPath>
</adminToolPath>
</serverDefinition>
本文系原创,转载请注明出处,谢谢!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: