Jakarta ee IBM RAD 8无法仅从RAD内部部署第二个ear文件

Jakarta ee IBM RAD 8无法仅从RAD内部部署第二个ear文件,jakarta-ee,websphere,java-ee-6,jndi,Jakarta Ee,Websphere,Java Ee 6,Jndi,以下操作来自RAD中的 我有两个ear项目,分别是myEar和myXEar myEar.ear依赖于作为myXEar.ear一部分的ejb客户端模块 首先,我启动服务器,然后将myXEar.ear添加到服务器中,工作正常 其次,我添加了myEar.ear,但是当它尝试用消息绑定EJB时,会中断: [10/15/12 10:46:33:915 CEST] 0000008f EJBContainerI E WSVR0039E: Unable to start EJB jar, ManageInf

以下操作来自RAD中的

我有两个ear项目,分别是myEar和myXEar

myEar.ear依赖于作为myXEar.ear一部分的ejb客户端模块

首先,我启动服务器,然后将myXEar.ear添加到服务器中,工作正常

其次,我添加了myEar.ear,但是当它尝试用消息绑定EJB时,会中断:

[10/15/12 10:46:33:915 CEST] 0000008f EJBContainerI E   WSVR0039E: Unable to start EJB jar, ManageInfoHeaderFacadeBean: The com.volvo.myEarx.facade.b.ManageInfoHeaderFacade interface of the ManageInfoHeaderFacadeBean bean in the myEarXFacadeEJB-5.2.27_M2ECLIPSE_UPGRADE-SNAPSHOT-client.jar module of the myEarEar application cannot be bound to the ejb/ManageInfoHeaderFacade name location. The com.volvo.myEarx.facade.b.ManageInfoHeaderFacade interface of the ManageInfoHeaderFacadeBean bean in the myEarXFacadeEJB-5.2.27_M2ECLIPSE_UPGRADE-SNAPSHOT.jar module of the myEarXEar application has already been bound to the ejb/ManageInfoHeaderFacade name location.
EJB已经在myEarX.ear启动期间注册。。。因此,现在我们遇到了一个问题,当引用同一ejb模块的第二个ear文件试图启动它时

为什么它不能在RAD内部工作? 从网络控制台上,一切都正常运行,但我需要 这项工作来自RAD内部。

我已经查看了org.eclipse.wst.common.组件文件以及其他文件。。但是我想不出来


谢谢

您有两个EAR项目,它们都包含相同的EJB模块。EJB模块有一个bean,它绑定到
EJB/ManageInfoHeaderFacade
中。由于JNDI命名冲突,在服务器上部署两个EAR模块将导致错误

我严重怀疑它是否可以通过web管理控制台完美地工作。我怀疑,当您通过web管理控制台进行部署时,您可以通过手动为bean分配JNDI名称,或者为bean的JNDI名称选择前缀来实现。这样,每个bean都有自己独特的JNDI名称


在RAD中,没有这样做的方法(至少在RAD 8.0中没有)。

Hi Isaac。您的解释是正确的,但实际上我遗漏了共享EJB模块,它的pom文件中也定义了更薄的xxxejb-client.jar,这是第二个项目实际引用的文件。不确定这是否相关。这已经运行了很长一段时间,并且运行良好,在管理控制台中没有手动步骤。bean的定义在模块ejb绑定中。注意,这在RAD7.5中也起到了作用。这是相关的。我认为最好描述一下这两个应用程序都是如何使用EJB的。我感觉到一个应用程序实际上是“托管”EJB,而另一个应用程序(指EJB客户机JAR)只调用该EJB上的远程方法。是吗?是的,看起来是这样。myXEar.ear包含facade.jar,然后另一个引用facade-client.jar,这是一个只有类名的瘦包,但实际上是在facades自己的pom中构建的。。但引用自myEar和.eclipse…组件文件中的模块
com.volvo.myApp myappfacadejb${myApp.version}ejb客户端
想不出什么?我认为这与各个模块中的.settings下的文件有关……从您的解释中我了解到,
myXEar.ear
是实际包含EJB的应用程序,而
myEar.ear
包含一些希望访问EJB的JavaEE模块,但不实际“托管”它。在这种情况下,
myEar.ear
不应该包括
facade.jar
,而应该只包括
facade-client.jar
myEar.ear
不希望部署EJB,而是希望远程使用现有的EJB(从
myXEar.ear
)。因此,请确保EJB模块(
facade.jar
)未被
myEar.ear
引用,并重新部署和测试。