Java WebSphere v7.0未部署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未在

我正在开发一个企业应用程序和构建的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引用”链接。由于我没有得到任何部署错误,我不知道哪里出了问题

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