我有两个单独的耳文件,它们使用在其persistence.xml中定义的相同持久性单元。在Weblogic 12.2.1.3中部署第二个Ear文件时,出现以下错误:
weblogic.application.ModuleException:java.lang.IllegalStateException:试图在关闭的EntityManagerFactory上执行操作。 在weblogic.application.internal.ExtensibleModuleWrapper.activate(ExtensibleModuleWrapper.java:123) 在weblogic.application.internal.flow.ModuleListenerInvoker.activate(ModuleListenerInvoker.java:114) 在weblogic.application.internal.flow.ModuleStateDriver $ 2.next(ModuleStateDriver.java:212) 在weblogic.application.internal.flow.ModuleStateDriver $ 2.next(ModuleStateDriver.java:207) 在weblogic.application.utils.StateMachineDriver $ ParallelChange.run(StateMachineDriver.java:83) 在weblogic.work.ContextWrap.run(ContextWrap.java:46) 在weblogic.work.SelfTuningWorkManagerImpl $ WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:670) 在weblogic.invocation.ComponentInvocationContextManager._runAs(ComponentInvocationContextManager.java:352) 在weblogic.invocation.ComponentInvocationContextManager.runAs(ComponentInvocationContextManager.java:337) 在weblogic.work.LivePartitionUtility.doRunWorkUnderContext(LivePartitionUtility.java:57) 在weblogic.work.PartitionUtility.runWorkUnderContext(PartitionUtility.java:41) 在weblogic.work.SelfTuningWorkManagerImpl.runWorkUnderContext(SelfTuningWorkManagerImpl.java:644) 在weblogic.work.ExecuteThread.execute(ExecuteThread.java:415) 在weblogic.work.ExecuteThread.run(ExecuteThread.java:355)
我在Weblogic中找不到有关EntityManagerFactory生命周期的任何信息。为什么可能从weblogic关闭EntityManagerFactory。任何人都可以提供有关该问题的提示或可以在其中找到更多信息的链接。
ear文件包含使用JPA,JTA和eclipse链接2.5.2作为JPA引擎的标准JEE7 SOAP Web服务。
答案 0 :(得分:1)
这是weblogic错误。 有关Oracle支持,请参阅文档ID 2502618.1。
Oracle支持的建议解决方案:
作为解决方案,应用修补程序29154575 解决方法: 禁用并行部署应用程序模块功能。禁用此选项将确保依次启动应用程序的各个模块,从而避免出现竞争状况。
答案 1 :(得分:0)
Oracle支持人员指出这是一个错误,它将在12.2.1.4中修复。在此之前,仅当Weblogic版本为12.2.1.2.0时,补丁29154575才有价值。 解决方法是,可以在Weblogic的config.xml文件中禁用“并行部署应用程序模块”功能。