Проблема развертывания Weblogic из-за исключения NameAlreadyBoundException после обновления с 10.3.6 до Weblogic 12cR2 - PullRequest
0 голосов
/ 30 мая 2018

У меня есть работающее приложение, построенное на Java 1.6 и Weblogic 10.3.6.Сейчас я перехожу на Java 1.8 и Weblogic 12cR2 (12.2.1.3).У меня есть EAR-файл, созданный на ANT и развернутый в Weblogic.

Я установил JDK 1.8 в своей системе и Weblogic 12cR2.Я скомпилировал свою кодовую базу и успешно построил ее на ANT.Файл .EAR сгенерирован без ошибок.Сейчас я пытаюсь развернуть его в моем последнем Weblogic и получаю следующую ошибку:

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

Я проверил свой код и не использую дубликат ссылки на ejb jndi и все.Проверил мой weblogic.xml, weblogic-ejb-jar.xml все отлично.

Пожалуйста, помогите мне выяснить, что мне не хватает при переходе на новый сервер Weblogic.

Также я хотел бы сообщить, что на моей локальной машине существует старый и новый сервер weblogic.Старый код в Java 6 отлично работает в старом weblogic, также протестирован с повторным развертыванием, все в порядке.Это просто в моем новом weblogic это не работает.Я обновил все необходимые файлы JAR в пути к классам моего проекта и использовал тот же, который шел с Weblogic 12cR2.Есть ли что-то еще, что я пропускаю.Пожалуйста помоги.

1 Ответ

0 голосов
/ 05 июля 2018

Проблема устранена.

Объяснение: У моего приложения несколько JAR-файлов и, следовательно, зависимостей.Зависимости JAR читались из пути к классам приложения.Таким образом, во всех файлах манифеста JAR присутствовало одно и то же имя.

Теперь я использую дополнительный путь к классу, отличный от пути к классу приложения по умолчанию при создании цели:

<path id="mf.classpath">    
    <path refid="common.classpath" />
    <fileset dir="${dist.dir}" includes="/**/*.jar" excludes="/**/*ejb*"/>
</path>

Это решило мою проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...