ars*_*vis 5 eclipse servlets ejb
我正在学习J2EE和EJB,我遇到了一个奇怪的问题.这是我的项目设置:
我正在使用Glassfish 3.1和Eclipse 3.7.我在Eclipse中有两个项目:
myEjbProject myWebProject我注入一个EJB会话bean mySessionBeanPackage.mySessionBean从myEjbProject成servlet myServletPackage.myServlet中myWebProject,然后(在servlet)调用会话bean定义的简单方法.
我已经提供myWebProject了一个引用myEjbProject(使用Properties - > Project References对话框).但是,由于某种原因,服务器无法找到会话bean.我得到的确切错误是:
严重:未找到类[LmySessionBeanPackage/mySessionBean].加载[class myServletPackage.myServlet]时出错
请注意,这两个 EJB项目和Web项目已发布到服务器,我已经反复检查为bean生成的类文件,其实存在于服务器上(所以我不能想出一个理由为什么服务器无法找到它们).
谁能告诉我我做错了什么?
我也试过了
将classes文件夹myEjbProject显式添加到Java Build Path - > Libraries列表中myWebProject.这是项目参考的补充(虽然我认为首先添加项目参考应该已经足够了).无论如何,它没有任何区别(与以前相同的错误信息).
myEjbProject使用Export - > EJB Jar File选项创建JAR文件(我现在不想编写Ant脚本).然后我把这个JAR放在Java Build Path - > Libraries部分myWebProject.这种方法也没有解决问题(与以前相同的错误信息).
修改会话bean
并相应地修改注射.例如,对于只有本地接口的bean,我使用了:
@EJB mySessionBeanPackage.mySessionBeanLocal myBean
这种方法也没有解决问题(与以前相同的错误信息).
myEjbProject完全废除并将会话bean添加到myWebProjectas myServletPackage.mySessionBean(与servlet相同的包).在这种情况下,我可以使用成功将会话bean注入servlet
@EJB mySessionBeanPackage.mySessionBean myBean
废除myEjbProject干脆加入会话bean myWebProject作为mySessionBeanPackage.mySessionBean(新包装).在这种情况下,我也可以使用成功地将会话bean注入到servlet中
@EJB mySessionBeanPackage.mySessionBean myBean
Ros*_*oss 12
我建议看看Eclipse打包并部署到服务器的实际EAR.您可以通过导出EAR项目(右键单击EAR项目 - >导出 - > Java EE - > EAR文件)来完成此操作
我认为您缺少的步骤是将EJB项目添加到WEB项目的MANIFEST文件中.但是,如果你错过了几个步骤,我会检查以下内容:
另外,我喜欢将EJB项目添加到WEB项目构建路径中,以便它包含在WEB的类路径中:右键单击WEB项目 - >属性 - > Java构建路径 - >项目 - >添加 - >选择EJB.
| 归档时间: |
|
| 查看次数: |
13324 次 |
| 最近记录: |