Eclipse 在JPA项目中放置EJB的“正确”方法是什么?

Eclipse 在JPA项目中放置EJB的“正确”方法是什么?,eclipse,jakarta-ee,ejb,Eclipse,Jakarta Ee,Ejb,我有一个在WebSphere7上使用Eclipse3.4(又称IBMRAD)构建的简单项目 我的工作区中有一个EAR项目、一个EJB项目和一个JPA项目 简短版本: 我的ejb项目中的ejb引用了我的JPA项目中的ejb,但它给了我一个EJBNotFoundException错误 在我的JPA项目中放置EJB的正确方法是什么 使现代化 一位同事告诉我EJB应该在EJB项目中,而不是JPA项目中。这就是我做错的一切吗?我想听听你的意见,谢谢 长版本: 在JPA项目中,我有我的实体/域对象,比如Wo

我有一个在WebSphere7上使用Eclipse3.4(又称IBMRAD)构建的简单项目

我的工作区中有一个EAR项目、一个EJB项目和一个JPA项目

简短版本:

我的ejb项目中的ejb引用了我的JPA项目中的ejb,但它给了我一个EJBNotFoundException错误

在我的JPA项目中放置EJB的正确方法是什么

使现代化 一位同事告诉我EJB应该在EJB项目中,而不是JPA项目中。这就是我做错的一切吗?我想听听你的意见,谢谢

长版本:

在JPA项目中,我有我的实体/域对象,比如Workflow.java,我有一个DAO,比如WorkflowDAO.java,它被注释为带有@Stateless的EJB

在EJB项目中,我有一个EJB ex.WorkflowService.java,它被注释为带有@Stateless的@EJB

WorkflowService.java引用WorkflowDAO,如下所示:

@Stateless
public class WorkflowService /*...*/
  @EJB
  private WorkflowDAO workflowDAO; /*...*
问题是,当我部署到服务器时,会出现以下错误:

com.ibm.ejs.container.EJBNotFoundException,应用程序测试程序中不存在接口test.WorkflowDAO的EJB

非常感谢您的帮助,谢谢

Rob

您必须将ejb jar打包到ear文件的根目录,并将jpa jar放在lib目录中。当您创建JPA和EJB项目并将它们添加到单独的企业Java项目中时,Eclipse通常负责打包

更新: 从你的评论中得出结论,你做错了。您应该运行EAR项目,并将您的JPA和EJB项目添加到其中。您应该检查EAR项目属性,并确保您的JPA和EJB项目列在Deployment Assembly选项卡上。如果没有,您可以将它们添加到那里。请参见屏幕截图:


仅供参考,我已经挖得更深,学到了更多。我添加了一个新问题,更具体地描述了我的问题:


不过,我在Eclispe中看到了这个错误。我还没有构建和部署EAR文件。任何进一步的想法或细节都会有所帮助,谢谢!我还没有构建和部署EAR文件,这是什么意思?您说过,您在尝试将其部署到服务器上时遇到此异常,对吗?我的意思是,我没有手动将EAR文件部署到WebSphere。当我在Eclipse IDE中使用服务器列表中的WebSphere 7运行应用程序时,我遇到了错误。你知道我的意思吗?不知道。您到底是如何从Eclipse运行它的?我的Eclipse工作区有各种各样的项目,EAR、EJB、JPA和Web。要运行该应用程序,我右键单击EJB项目,选择run as>run on Server>WebSphere 7-服务器似乎已启动,但日志中有一个堆栈跟踪指示EJBNotFoundException。希望澄清,谢谢!那么,你认为这是对你问题的回答?如果这是答案,你至少可以试着解释一下你是如何解决问题的?我没有解决问题。TestJPA项目中的EJB仍然不可见,我不得不将它们移到TestEJB项目中。我将这个答案标记为正确,因为新的简化问题的链接是我找到问题解决方案的唯一途径。你上面的回答没有帮助;可能是因为您的说明是针对Eclipse3.5或更高版本的。正如我在问题中所说,我使用的是Eclipse3.4。重点是,您可以等到找到解决方案,然后发布它并接受作为答案。你刚刚接受的不是答案。