【发布时间】:2015-06-01 20:50:33
【问题描述】:
我有一个 EJB X 实现接口 IX;我在 WebSphere 中部署了一个 Web 服务 Z;它的一个类声明了以下内容:
@EJB 九九;
当 X 和 IX 与应用程序位于同一源代码树中时,这可以正常工作。我将其命名为 @Singleton 和 @Startup,尽管我已将其更改为 @Stateful。
该应用程序有一个与另一个 Web 服务共享的 jar,而第二个 Web 服务也可以使用 X。所以我想将 X 移动到每个 Web 服务使用的 jar(或其他)中。
两个 Web 服务当前都使用了一个 jar,因此我将 X、IX 和另一个依赖类移到了该 jar 的源代码树中。我编译了jar并导出它,覆盖了之前使用的jar。我已经打开它并验证了其中包含三个新类。
当我在服务器 (RAD/eclipse) 中运行应用程序时,我收到一条错误消息:
com.ibm.ejs.container.EJBNotFoundException:应用程序 Z 中不存在接口 IX 的 EJB。
如上所述,我在应用程序的一个类中将其声明为@EJB,在一个当 IX 及其支持类位于同一源代码树中时起作用的位置。
jar 文件的 RAD/eclipse 项目最初没有 EJB facet,所以我添加了它;我重新编译等,得到同样的错误。如果需要,我可以将内容添加到 ejb-jar.xml,尽管我认为这就是 Annotations 的用途。但也许有一些注释没有做的事情,或者我需要添加一些东西,因为 bean 在不同的 jar 中。
我想我错过了一些关于配置或声明的内容。这些信息足以告诉我它是什么吗?
【问题讨论】: