I have a running application which is build on Java 1.6 and Weblogic 10.3.6. Now I am migrating to Java 1.8 and Weblogic 12cR2 (12.2.1.3). I have a EAR file which is built on ANT and that gets deployed in Weblogic.
I have installed JDK 1.8 in my system, and Weblogic 12cR2. I have compiled my code base and built it on ANT successfully. .EAR file got generated without any errors. Now I am trying to deploy it in my latest Weblogic and I am getting the below error :
weblogic.application.ModuleException:
Unable to bind Business Interface to the JNDI name: myapp_admin_ejb_jarAdminServiceBean_Home,
throw exception javax.naming.NameAlreadyBoundException: [EJB:011224]Unable to bind the interface com.abc.xyz.admin.ejb.session.AdminServiceRemote to remote.
Another EJB has already bound an interface to that name.;
remaining name 'ejb/admin_service_jndi'.
NestedException Message is :
Unable to bind the interface to remote.
Another EJB has already bound an interface to that name. at weblogic.application.internal.ExtensibleModuleWrapper.activate(ExtensibleModuleWrapper.java:123)
<May 29, 2018 3:56:04,460 PM IST> <Error> <Deployer> <BEA-149265> <Failure occurred in the execution of deployment request with ID "10661298941920" for task "0" on [partition-name: DOMAIN]. Error is: "weblogic.application.ModuleException: Unable to bind Business Interface to the JNDI name: myapp_admin_ejb_jarAdminServiceBean_Home, throw exception javax.naming.NameAlreadyBoundException: [EJB:011224]Unable to bind the interface com.abc.xyzadmin.ejb.session.AdminServiceRemote to remote. Another EJB has already bound an interface to that name.; remaining name 'ejb/admin_service_jndi'. NestedException Message is :[EJB:011224]Unable to bind the interface com.abc.xyzadmin.ejb.session.AdminServiceRemote to remote. Another EJB has already bound an interface to that name."
weblogic.application.ModuleException: Unable to bind Business Interface to the JNDI name: myapp_admin_ejb_jarAdminServiceBean_Home, throw exception javax.naming.NameAlreadyBoundException: [EJB:011224]Unable to bind the interface com.abc.xyzadmin.ejb.session.AdminServiceRemote to remote. Another EJB has already bound an interface to that name.; remaining name 'ejb/admin_service_jndi'. NestedException Message is :[EJB:011224]Unable to bind the interface com.abc.xyzadmin.ejb.session.AdminServiceRemote to remote. Another EJB has already bound an interface to that name.
at weblogic.application.internal.ExtensibleModuleWrapper.activate(ExtensibleModuleWrapper.java:123)
at weblogic.application.internal.flow.ModuleListenerInvoker.activate(ModuleListenerInvoker.java:114)
at weblogic.application.internal.flow.ModuleStateDriver$2.next(ModuleStateDriver.java:212)
at weblogic.application.internal.flow.ModuleStateDriver$2.next(ModuleStateDriver.java:207)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:45)
Truncated. see log file for complete stacktrace
Caused By: Unable to bind Business Interface to the JNDI name: myapp_admin_ejb_jarAdminServiceBean_Home, throw exception javax.naming.NameAlreadyBoundException: [EJB:011224]Unable to bind the interface com.abc.xyzadmin.ejb.session.AdminServiceRemote to remote. Another EJB has already bound an interface to that name.; remaining name 'ejb/admin_service_jndi'. NestedException Message is :[EJB:011224]Unable to bind the interface com.abc.xyzadmin.ejb.session.AdminServiceRemote to remote. Another EJB has already bound an interface to that name.
at weblogic.ejb.container.deployer.Ejb3SessionBinder.bindToJNDI(Ejb3SessionBinder.java:144)
at weblogic.ejb.container.deployer.ClientDrivenBeanInfoImpl.activate(ClientDrivenBeanInfoImpl.java:900)
at weblogic.ejb.container.deployer.EJBDeployer.activate(EJBDeployer.java:770)
at weblogic.ejb.container.deployer.EJBModule.activate(EJBModule.java:447)
at weblogic.application.internal.ExtensibleModuleWrapper$ActivateStateChange.next(ExtensibleModuleWrapper.java:317)
Truncated. see log file for complete stacktrace
I have checked my code and I am not using any duplicate ejb jndi reference and all. Checked my weblogic.xml, weblogic-ejb-jar.xml everything is just fine.
Please help me to find out what I am missing out while doing the migration to new Weblogic server.
Also I would like to inform that, in my local machine both the old and new weblogic server is existing. Old code in Java 6 is running fine in old weblogic , tested with re-deployment also, everything is fine. It is just in my new weblogic it is not running. I have upgraded all the required JAR files in my project class-path and using the same that came with Weblogic 12cR2. Is there anything else I am missing out. Please help.
Issue has been resolved.
Explanation : My application has multiple JARs and so the dependencies. The JAR dependencies was getting read from application classpath. So in all the JAR manifest files the same name was present.
I am now using the additional classpath other than the default application classpath during the target creation :
<path id="mf.classpath">
<path refid="common.classpath" />
<fileset dir="${dist.dir}" includes="/**/*.jar" excludes="/**/*ejb*"/>
</path>
This solved my issue.