We are upgrading from RAD 7/WAS 6.1 to RAD 7.5 / WAS 7.
Our project currently has multiple ears. On the servers, each ear runs in it's own JVM, but when we
test locally, we test multiple ears on the same server. Some of these ears contain the same
EJB's - for example, we have a CommonEJB that runs in both EAR_A and EAR_B.
With RAD 7 / WAS 6.1 this works with no problems.
When we try to run the same scenario under RAD 7.5 and WAS 7, we receive the following error:
The com.ejb.CommonHome interface of the Common bean in the CommonEJB.jar module of the EAR_A application cannot be bound to the ejb /com/ejb/CommonHome name location. The com.ejb.CommonHome interface of the Common bean in the CommonEJB.jar module of the EAR_B application has already been bound to the ejb/com//ejb/CommonHome name location.
at com.ibm.ws.runtime.component.EJBContainerImpl.startModule(EJBContainerImpl.java:2728)
at com.ibm.ws.runtime.component.EJBContainerImpl.start(EJBContainerImpl.java:3826)
at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:1122)
at com.ibm.ws.runtime.component.DeployedApplicationImpl.fireDeployedObjectStart(DeployedApplicationImpl.java:1319)
at com.ibm.ws.runtime.component.DeployedModuleImpl.start(DeployedModuleImpl.java:609)
at com.ibm.ws.runtime.component.DeployedApplicationImpl.start(DeployedApplicationImpl.java:944)
at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:725)
at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:2046)
at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.start(CompositionUnitMgrImpl.java:439)
at com.ibm.ws.runtime.component.CompositionUnitImpl.start(CompositionUnitImpl.java:123)
at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.start(CompositionUnitMgrImpl.java:382)
at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.access$300(CompositionUnitMgrImpl.java:110)
at com.ibm.ws.runtime.component.CompositionUnitMgrImpl$CUInitializer.run(CompositionUnitMgrImpl.java:949)
at com.ibm.wsspi.runtime.component.WsComponentImpl$_AsynchInitializer.run(WsComponentImpl.java:349)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1563)
WSVR0501E: Error creating component com.ibm.ws.runtime.component.CompositionUnitMgrImpl@4eda4eda
com.ibm.ws.exception.RuntimeWarning: javax.naming.NameAlreadyBoundException: The com.Common.ejb.CommonHome interface of the Common bean in the CommonEJB.jar module of the EAR_A application
cannot be bound to the ejb/ejb/CommonHome name location. The com.uhc.edist.Common.ejb.CommonHome
interface of the Common bean in the CommonEJB.jar module of the EAR_B application has already been bound to the ejb/ Common/ejb/CommonHome name location.
I realize that sometimes this message appears as a warning, but here it actually prevents the second EAR from running. There was a similar problem with
WAS 6.1 which was resolved by an update from IBM (PK69778).
We are running WAS 7.0.0.13, and Rational Application Developer Version: 7.5.5.3, Build ID: 20101203_0655.
Does anyone have any ideas?