我正在使用企业应用程序并构建了包含WAR和ejb jar文件以及SOAP Web服务的EAR文件。我成功地部署了应用程序而没有任何启动错误并发布了Web服务,我可以访问wsdl文件并从SOAP UI进行Web服务调用。 Web服务调用某个Manager类,该类查找EJB以查找失败的会话bean,异常 javax.naming.NameNotFoundException:在上下文中找不到名称com.chubb.dgmk.dus.client.DigitalUserServiceLocal " ejblocal:"。
我的会话ejb标记为 @Stateless ,本地界面标记为 @Local 注释。但是当我在管理控制台中查看我的应用程序时,我看不到任何部署的EJB。参考部分下没有" EJB References" 链接,如下图所示。由于我没有遇到任何部署错误,因此我不知道出了什么问题。
try {
context = new InitialContext();
Object obj = context.lookup("ejblocal:com.chubb.dgmk.dus.client.DigitalUserServiceLocal");
dusService = (IDigitalUserService)obj;
} catch (NamingException e) {
}
答案 0 :(得分:0)
这是因为没有在EJB项目的MANIFEST文件中指定依赖jar。在MANIFEST文件中添加所有这些jar后,我能够成功加载和查找EJB。