我有一个旧的 war 文件,我正在尝试将其部署在 JBOss7.1.0 EAP 中,但出现以下错误。它在旧版本的 JBoss 中运行
INFO [org.jboss.as.jpa] (MSC service thread 1-1) WFLYJPA0002: Read persistence.xml for IcamBusiness
16:02:30,693 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-5) MSC000001: Failed to start service jboss.deployment.subunit."icam-e.ear"."icam-e-web-1.war".DEPENDENCIES: org.jboss.msc.service.StartException in service jboss.deployment.subunit."icam-e.ear"."icam-e-web-1.war".DEPENDENCIES: WFLYSRV0153: Failed to process phase DEPENDENCIES of subdeployment "icam-e-web-1.war" of deployment "icam-e.ear"
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:172)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:2032)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1955)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.IllegalArgumentException: WFLYJPA0061: Persistence unitName was not specified and there are 2 persistence unit definitions in application deployment subdeployment "icam-e-web-1.war" of deployment "icam-e.ear". Either change the application deployment to have only one persistence unit definition or specify the unitName for each reference to a persistence unit.
at org.jboss.as.jpa.container.PersistenceUnitSearch.ambiguousPUError(PersistenceUnitSearch.java:187)
at org.jboss.as.jpa.container.PersistenceUnitSearch.findWithinDeployment(PersistenceUnitSearch.java:153)
at org.jboss.as.jpa.container.PersistenceUnitSearch.findPersistenceUnitSupplier(
当我打开旧的 war 文件时,我可以看到它使用了 persistence.xml 文件,并且在尝试加载“IcamBusiness”时,它给出了错误。 我想,我必须提到 @PersistenceContext(unitName = "IcamBusiness") 解决这个问题,但我没有 war 的源代码。有什么办法可以在JBoss7.1.0EAP中运行这个war文件。
最佳答案
问题可能出在 persistence.xml 上添加持久性单元:
<property name="wildfly.jpa.default-unit" value="true"/>
或者定义:
<persistence-unit name="primary">
<jta-data-source>java:jboss/datasources/primary_ds</jta-data-source>
<class>whatever.primary.model.SomeEntity</class>
<exclude-unlisted-classes>true</exclude-unlisted-classes>
<properties> ... </properties>
</persistence-unit>
这个question带来更多信息
关于java - 部署到 Jboss 7.1.0 EAP 时未指定持久性单元名称错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57764388/