java - 部署到 Jboss 7.1.0 EAP 时未指定持久性单元名称错误

标签 java hibernate spring-mvc jpa jboss

我有一个旧的 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文件。 enter image description here

最佳答案

问题可能出在 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/

相关文章:

java - 如何在 Apache Flink ui 中显示指标?

java - Hibernate 无法判断对象是代理还是真实对象

spring-mvc - 在 Spring MVC Controller 中访问 "Request payload"?

java - 配置文件不存在时的默认 Spring bean

java - Spring Boot 配置文件 - 运行 sql 脚本而不是 ddl-auto

Spring3 @ExceptionHandler 用于 ServletRequestBindingException

java - Netbeans IDE 7.3.1 记录器

java - JClouds 和 OpenStack : IllegalStateException: Expected BEGIN_ARRAY but was STRING

java - 错误: java. lang.ClassCastException : android. view.View无法转换为android.view.ViewGroup

java hibernate标准问题