WebSphere v7.0 未部署 EJB

WebSphere v7.0 is not deploying EJB

我正在开发一个企业应用程序并构建了包含 WAR 和 ejb jar 文件以及 SOAP Web 服务的 EAR 文件。我成功地部署了应用程序,没有任何启动错误并发布了 Web 服务,我可以访问 wsdl 文件并从 SOAP UI 进行 Web 服务调用。 Web 服务调用某个管理器 class,该管理器执行 EJB 查找以查找因异常 javax.naming.NameNotFoundException 而失败的会话 bean:在上下文中找不到名称 com.chubb.dgmk.dus.client.DigitalUserServiceLocal "ejblocal:".

我的会话 ejb 被标记为 @Stateless 和带有 @Local 注释的本地接口。但是当我在管理控制台中查看我的应用程序时,我没有看到任何已部署的 EJB。参考部分下没有 "EJB References" link ,如下图所示。由于我没有收到任何部署错误,所以我不知道出了什么问题。

try {
            context = new InitialContext();
            Object obj = context.lookup("ejblocal:com.chubb.dgmk.dus.client.DigitalUserServiceLocal");
            dusService = (IDigitalUserService)obj;
        } catch (NamingException e) {
        }

您看不到引用,因为在您提供服务的 Web 模块中没有定义引用。您需要在 web.xml@EJB 注释中包含 ejb-local-ref 条目。

关于您的 ejblocal: 查找,它应该有效。在 SystemOut.log 中验证绑定 DigitalUserService 的绑定是什么。也许你有 ibm-ejb-jar-bnd.xml 文件,它覆盖了默认绑定。

您还应该能够在该页面的 Enterprise Java Beans Properties 部分中看到 EJB JNDI names。如果你不这样做,那么看起来你的 EJB 没有被检测到。

是因为在EJB工程的MANIFEST文件中没有指定依赖的jar。在 MANIFEST 文件中添加所有这些 jar 后,我能够成功加载和查找 EJB。