Java WebSphere v7.0未部署EJB
我正在开发一个企业应用程序和构建的EAR文件,其中包含WAR和EJBJAR文件以及SOAPWeb服务。我成功地部署了应用程序,没有任何启动错误,并发布了web服务,我可以访问wsdl文件并从SOAP UI调用web服务。web服务调用某个管理器类,该管理器类执行EJB查找以查找会话bean,该会话bean因异常而失败javax.naming.NameNotFoundException:Name com.chubb.dgmk.dus.client.DigitalUserServiceLocal未在上下文“ejblocal:”中找到。 我的会话ejb被标记为@无状态,本地接口带有@local注释。但当我在管理控制台中查看我的应用程序时,我没有看到任何部署的EJB。如下图所示,引用部分下没有“EJB引用”链接。由于我没有得到任何部署错误,我不知道哪里出了问题Java WebSphere v7.0未部署EJB,java,jakarta-ee,ejb-3.0,websphere-7,Java,Jakarta Ee,Ejb 3.0,Websphere 7,我正在开发一个企业应用程序和构建的EAR文件,其中包含WAR和EJBJAR文件以及SOAPWeb服务。我成功地部署了应用程序,没有任何启动错误,并发布了web服务,我可以访问wsdl文件并从SOAP UI调用web服务。web服务调用某个管理器类,该管理器类执行EJB查找以查找会话bean,该会话bean因异常而失败javax.naming.NameNotFoundException:Name com.chubb.dgmk.dus.client.DigitalUserServiceLocal未在
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:
lookup,它应该可以工作。在SystemOut.log
中验证绑定DigitalUserService
的绑定是什么。也许您有ibmejbjar bnd.xml
文件,它覆盖默认绑定
您还应该能够在该页面的
enterprisejavabeansproperties
部分中看到ejbjndi名称。如果您没有,那么看起来您的EJB没有被检测到 您看不到引用,因为在您提供服务的web模块中没有定义引用。您需要在web.xml
或@ejb
注释中有ejb local ref
条目
关于ejblocal:
lookup,它应该可以工作。在SystemOut.log
中验证绑定DigitalUserService
的绑定是什么。也许您有ibmejbjar bnd.xml
文件,它覆盖默认绑定
您还应该能够在该页面的enterprisejavabeansproperties
部分中看到ejbjndi名称。如果您没有,那么看起来您的EJB没有被检测到 这是因为没有在EJB项目的清单文件中指定依赖JAR。在清单文件中添加所有这些JAR之后,我能够成功地加载和查找EJB。这是因为没有在EJB项目的清单文件中指定依赖JAR。在清单文件中添加所有这些jar之后,我能够成功地加载和查找EJB。EJB项目中的application.xml缺少EJB jar的模块声明。因此,我刚刚添加了它,如下所示。现在我得到了关于客户端类的部署异常。我的@Local出现在不同的项目中,我在这个项目的ejb-jar.xml中添加了ejb客户机jar。但它仍然无法加载该本地接口,因此无法部署我的ejb。DigitalUserServicesDomain.jar@user1614862 Yor ejb客户端jar应位于EAR/lib文件夹中,或者如果它位于不同的路径(例如EAR根目录)中,则应将其置于MANIFEST.MF中的ejb模块类路径中。最简单的方法是通过Eclipse中的Project properties>Deployment Assembly来完成。它已经在EAR/lib文件夹中。但是,我在启动服务器时仍然遇到类加载异常。此外,在将EJBJAR移动/声明到application.xml之后,我无法为我的服务生成wsdl。从我的RAD.application.xml执行wsgen命令时,我遇到了“未能本地化”错误。我的EJB项目中缺少EJB jar的模块声明。现在我得到了关于客户端类的部署异常。我的@Local出现在不同的项目中,我在这个项目的ejb-jar.xml中添加了ejb客户机jar。但它仍然无法加载该本地接口,因此无法部署我的ejb。DigitalUserServicesDomain.jar@user1614862 Yor ejb客户端jar应位于EAR/lib文件夹中,或者如果它位于不同的路径(例如EAR根目录)中,则应将其置于MANIFEST.MF中的ejb模块类路径中。最简单的方法是通过Eclipse中的Project properties>Deployment Assembly来完成。它已经在EAR/lib文件夹中。但是,我在启动服务器时仍然遇到类加载异常。此外,在将EJBJAR移动/声明到application.xml之后,我无法为我的服务生成wsdl。从我的RAD执行wsgen命令时,我遇到了“未能本地化”错误。在我的EAR的application.xml中添加了一个条目后,我在ejb模块中工作并被检测到。默认情况下,Maven只添加war文件。我添加了另一个条目,如lib/core-ejb.jar,在我的EAR的application.xml中添加了一个条目后,我被ejb模块检测到。默认情况下,Maven只添加war文件。我添加了另一个条目,如lib/core-ejb.jar