答案 0 :(得分:1)
您已在堆栈跟踪中回答:
The short-form default binding 'com.demo.view.RitornaPersonaRemote'
is ambiguous because multiple beans implement the interface :
[RitornaPersonaSenzaClientEAR#RitornaPersonaSenzaClient.jar#RitornaPersona,
RitornaPersonaWebSenzaClientEAR#RitornaPersonaSenzaClient.jar#RitornaPersona].
Provide an interface specific binding or use the long-form default binding on lookup.]
如果您在询问是否可能在多个项目中使用相同的EJB jar - 答案是肯定的。但是在部署期间,您必须使用长格式JNDI,为其他模块中的bean提供不同的JNDI名称或禁用短名称。您不能以相同的名称注册两个bean。
长名称的格式为RitornaPersonaSenzaClientEAR#RitornaPersonaSenzaClient.jar#com.demo.view.RitornaPersonaRemote
请在此处查看详细信息 - EJB 3.0 and EJB 3.1 application bindings overview
<强>更新强>
要禁用短名称,请执行以下步骤:
Application servers > server1 > Process definition > Java Virtual Machine > Custom properties
com.ibm.websphere.ejbcontainer.disableShortDefaultBindings
定义新的自定义属性*
以禁用所有应用的短绑定,或AppName1|AppName2
仅禁用所选应用中的短绑定。示例默认绑定显示在SystemOut.log中:
The binding location is: ejblocal:JPADepEar/JPADepEJB.jar/TableTester#ejb.TableTester
The binding location is: ejblocal:ejb.TableTester
The binding location is: java:global/JPADepEar/JPADepEJB/TableTester!ejb.TableTester
如果设置了disableShortDefaultBindings
属性,则没有简短形式:
The binding location is: ejblocal:JPADepEar/JPADepEJB.jar/TableTester#ejb.TableTester
The binding location is: java:global/JPADepEar/JPADepEJB/TableTester!ejb.TableTester
文档中存在错误,正确的属性是 com.ibm.websphere.ejbcontainer.disableShortDefaultBindings 而不是 com.ibm.websphere.ejbcontainer.disableShortFormBinding
答案 1 :(得分:0)
在我的情况下:-我确实安装了abc.ear和xyz.ear,这两个耳朵是相互独立的,相互依赖。
我使用客户端查找功能呼叫abc.ear,但这给了我
com.ibm.websphere.naming.CannotInstantiateObjectException:JNDI NamingManager在处理javax.naming.Reference对象时发生异常。 [根本例外是com.ibm.websphere.ejbcontainer.AmbiguousEJBReferenceException:简短格式的默认绑定 “ com.ejb.abc”是模棱两可的,因为多个bean实现了该接口: [xyz-ear#rabc-ejb-1.0.jar#abcInrerfaceImpl,rabc-ear#rabc-ejb-1.0.jar
我的解决方法是:-
我删除了另一个应用程序(xyz.ear)内的abc.jar C:\ Program Files \ IBM \ WebSphere \ AppServer \ profiles \ AppSrv01 \ wstemp \ 92668751 \ workspace \ cells \ mypc00Node01Cell \ applications \ xyz-ear.ear '
然后解决方案客户端查找正常。
为避免将来发生这种情况,更好的做法是在IBM-WAS服务器上创建单独的节点,然后将两个应用程序安装在不同的节点上。
因此两个应用程序组件都不会混乱。