«JNDI уже используется» во время повторного развертывания в WebLogic 12c - PullRequest
0 голосов
/ 25 мая 2018

Во время повторного развертывания мы сталкиваемся со странным поведением weblogic 12c.

Во время первого развертывания определенной войны процесс проходит гладко, но во время второго развертывания (если война уже развернута наWL) мы получили следующую ошибку

Мы команда из 10 разработчиков.Эта ошибка возникает только на ПК от 3/10 человек, и не каждый раз.Это абсолютно недетерминированное поведение.Распространенная закономерность заключается в том, что после перезапуска сервера вы можете выполнить 1-2 повторных развертывания приложения, а затем проблема появляется снова и остается навсегда!Мы пытались очистить кеш, но не повезло.Единственное, что мы можем сделать, это перезапустить сервер и заново развернуть приложение.

Java: 1.8.0_172

ejb-jar.xml: НЕ используется.

LoanTypeService является EJB без сохранения состояния.Даже если я удалю его, другой EJB потерпит неудачу.

<Warning> <Deployer> <BEA-149078> <Stack trace for message 149004
weblogic.application.ModuleException: Error deploying the EJB LoanTypeService(Application: moduleName, EJBComponent: moduleName.war), the JNDI name java:global/moduleName/LoanTypeService is already in use. You must set a different JNDI name in the weblogic-ejb-jar.xml deployment descriptor or corresponding annotation for this EJB before it can be deployed.
        at weblogic.application.internal.ExtensibleModuleWrapper.prepare(ExtensibleModuleWrapper.java:114)
        at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:100)
        at weblogic.application.internal.flow.ModuleStateDriver$1.next(ModuleStateDriver.java:192)
        at weblogic.application.internal.flow.ModuleStateDriver$1.next(ModuleStateDriver.java:187)
        at weblogic.application.utils.StateMachineDriver$ParallelChange.run(StateMachineDriver.java:83)
        Truncated. see log file for complete stacktrace
Caused By: Error deploying the EJB LoanTypeService(Application: moduleName, EJBComponent: moduleName.war), the JNDI name java:global/moduleName/LoanTypeService is already in use. You must set a different JNDI name in the weblogic-ejb-jar.xml deployment descriptor or corresponding annotation for this EJB before it can be deployed.
        at weblogic.ejb.container.deployer.SessionBeanInfoImpl.prepare(SessionBeanInfoImpl.java:502)
        at weblogic.ejb.container.deployer.EJBDeployer.setupBeanInfos(EJBDeployer.java:580)
        at weblogic.ejb.container.deployer.EJBDeployer.prepare(EJBDeployer.java:733)
        at weblogic.ejb.container.deployer.EjbModuleExtension.postPrepare(EjbModuleExtension.java:101)
        at weblogic.application.internal.ExtensibleModuleWrapper$PrepareStateChange.next(ExtensibleModuleWrapper.java:297)
        Truncated. see log file for complete stacktrace

Я знаю, что уже существует подобный вопрос , но остановка WL и очистка кэша, очевидно, не вариант.

...