【问题标题】:Issue deploying EAR Application in WildFly 8, can't find persistence UNIT在 WildFly 8 中部署 EAR 应用程序时出现问题,找不到持久性单元
【发布时间】:2015-05-13 18:53:34
【问题描述】:

我正在创建一个 Java EE/7 EAR 应用程序,并且作为目标 AS 使用 WildFly 8.2。我注意到的第一件事是我的 ds.xml 文件没有在服务器中定义任何 DS,我必须手动创建它。注入 EntityManage 的第二个 y 类具有以下注释:

@PersistenceContext(unitName = "DebitoAutomaticoMockDS")
private EntityManager em;

但在部署 WildFly 之后仍然出现以下错误:

部署失败:DebitoAutomaticoMock-ear.ear: { "outcome" : "failed", "failure-description" : { "JBAS014671: Failed services" : {"jboss.deployment.subunit.\"DebitoAutomaticoMock-ear.ear \".\"DebitoAutomaticoMock-ejb.jar\".INSTALL" : "org.jboss.msc.service.StartException in service jboss.deployment.subunit.\"DebitoAutomaticoMock-ear.ear\".\"DebitoAutomaticoMock-ejb. jar\".INSTALL: JBAS018733: 无法处理部署 \"DebitoAutomaticoMock-ear.ear\"\n 的子部署 \"DebitoAutomaticoMock-ejb.jar\" 的阶段 INSTALL 原因:org.jboss.as.server.deployment。 DeploymentUnitProcessingException:JBAS011047:组件类 bo.com.sintesis.debito.mock.service.MemberRegistration 组件 MemberRegistration 有错误:\nJBAS011440:在部署的子部署“DebitoAutomaticoMock-ejb.jar”中找不到名为 DebitoAutomaticoMockDS 的持久性单元\"DebitoAutomaticoMock-ear.ear\""}, "JBAS014771: 缺少/不可用依赖项的服务" : ["jboss.naming.context.java. comp.DebitoAutomaticoMock-ear.DebitoAutomaticoMock-ejb.MemberRegistration.InAppClientContainer 丢失 [jboss.naming.context.java.comp.DebitoAutomaticoMock-ear.DebitoAutomaticoMock-ejb.MemberRegistration]", "jboss.naming.context.java.comp.DebitoAutomaticoMock -ear.DebitoAutomaticoMock-ejb.MemberRegistration.Validator 缺失 [jboss.naming.context.java.comp.DebitoAutomaticoMock-ear.DebitoAutomaticoMock-ejb.MemberRegistration]", "jboss.deployment.subunit.\"DebitoAutomaticoMock-ear.ear\ ".\"DebitoAutomaticoMock-web.war\".component.\"javax.faces.webapp.FacetTag\".START 缺失 [jboss.persistenceunit.\"DebitoAutomaticoMock-ear.ear/DebitoAutomaticoMock-ejb.jar#primary\ "]", "jboss.naming.context.java.comp.DebitoAutomaticoMock-ear.DebitoAutomaticoMock-ejb.MemberRegistration.ValidatorFactory 缺失 [jboss.naming.context.java.comp.DebitoAutomaticoMock-ear.DebitoAutomaticoMock-ejb.MemberRegistration]" , "jboss.naming.context.java.module.DebitoAutomaticoMock-ear.DebitoAutomaticoMock-web。 DefaultDataSource 缺失 [jboss.naming.context.java.jboss.datasources.WebServicesDS]", "jboss.deployment.subunit.\"DebitoAutomaticoMock-ear.ear\".\"DebitoAutomaticoMock-ejb.jar\".weld.weldClassIntrospector缺少 [jboss.deployment.subunit.\"DebitoAutomaticoMock-ear.ear\".\"DebitoAutomaticoMock-ejb.jar\".beanmanager]"、"jboss.deployment.subunit.\"DebitoAutomaticoMock-ear.ear\"。 \"DebitoAutomaticoMock-web.war\".component.\"javax.servlet.jsp.jstl.tlv.ScriptFreeTLV\".START 缺失 [jboss.persistenceunit.\"DebitoAutomaticoMock-ear.ear/DebitoAutomaticoMock-ejb.jar# primary\"]", "jboss.deployment.subunit.\"DebitoAutomaticoMock-ear.ear\".\"DebitoAutomaticoMock-web.war\".component.\"bo.com.sintesis.debito.mock.Servicios\" .START 丢失 [jboss.persistenceunit.\"DebitoAutomaticoMock-ear.ear/DebitoAutomaticoMock-ejb.jar#primary\"]", "jboss.deployment.unit.\"DebitoAutomaticoMock-ear.ear\".deploymentCompleteService 丢失 [ jboss.deployment.subunit.\"DebitoAutomaticoMock-ear.ear\".\"D ebitoAutomaticoMock-ejb.jar\".deploymentCompleteService]", "jboss.deployment.subunit.\"DebitoAutomaticoMock-ear.ear\".\"DebitoAutomaticoMock-web.war\".component.\"bo.com.sintesis.debito .bancos.ServicioDebito\".START 缺失 [jboss.persistenceunit.\"DebitoAutomaticoMock-ear.ear/DebitoAutomaticoMock-ejb.jar#primary\"]", "jboss.naming.context.java.comp.DebitoAutomaticoMock-ear.缺少 DebitoAutomaticoMock-ejb.MemberRegistration.InstanceName [jboss.naming.context.java.comp.DebitoAutomaticoMock-ear.DebitoAutomaticoMock-ejb.MemberRegistration]", "jboss.deployment.unit.\"DebitoAutomaticoMock-ear.ear\".WeldStartService缺少 [jboss.persistenceunit.\"DebitoAutomaticoMock-ear.ear/DebitoAutomaticoMock-ejb.jar#primary\", jboss.deployment.subunit.\"DebitoAutomaticoMock-ear.ear\".\"DebitoAutomaticoMock-ejb.jar\" .jndiDependencyService]", "jboss.deployment.subunit.\"DebitoAutomaticoMock-ear.ear\".\"DebitoAutomaticoMock-web.war\".component.\"bo.com.sintesis.debito.bancos.ServiciosBanco\"。 STA RT 丢失 [jboss.persistenceunit.\"DebitoAutomaticoMock-ear.ear/DebitoAutomaticoMock-ejb.jar#primary\"]", "jboss.deployment.subunit.\"DebitoAutomaticoMock-ear.ear\".\"DebitoAutomaticoMock-web .war\".component.\"com.sun.xml.ws.transport.http.servlet.WSServletContextListener\".START 缺失 [jboss.persistenceunit.\"DebitoAutomaticoMock-ear.ear/DebitoAutomaticoMock-ejb.jar#primary \"]", "jboss.deployment.subunit.\"DebitoAutomaticoMock-ear.ear\".\"DebitoAutomaticoMock-web.war\".component.\"javax.servlet.jsp.jstl.tlv.PermittedTaglibsTLV\".缺少 START [jboss.persistenceunit.\"DebitoAutomaticoMock-ear.ear/DebitoAutomaticoMock-ejb.jar#primary\"]", "jboss.deployment.subunit.\"DebitoAutomaticoMock-ear.ear\".\"DebitoAutomaticoMock-web .war\".component.\"com.sun.faces.config.ConfigureListener\".START 缺失 [jboss.persistenceunit.\"DebitoAutomaticoMock-ear.ear/DebitoAutomaticoMock-ejb.jar#primary\"]", " jboss.deployment.subunit.\"DebitoAutomaticoMock-ear.ear\".\"DebitoAutomaticoMock-we b.war\".component.\"com.sun.xml.ws.transport.http.servlet.WSAsyncListener$1\".START 丢失 [jboss.persistenceunit.\"DebitoAutomaticoMock-ear.ear/DebitoAutomaticoMock-ejb.jar #primary\"]" ] }, "回滚" : true }

我很困惑,因为我的持久化单元如下:

<persistence version="2.0"
   xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="
        http://java.sun.com/xml/ns/persistence
        http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
   <persistence-unit name="primary">
      <!-- If you are running in a production environment, add a managed 
         data source, this example data source is just for development and testing! -->
      <!-- The datasource is deployed as <EAR>/META-INF/DebitoAutomaticoMock-ds.xml, you
         can find it in the source at ear/src/main/application/META-INF/DebitoAutomaticoMock-ds.xml -->
      <jta-data-source>java:jboss/datasources/DebitoAutomaticoMockDS</jta-data-source>
      <properties>
         <!-- Properties for Hibernate -->
         <property name="hibernate.hbm2ddl.auto" value="create-drop" />
         <property name="hibernate.show_sql" value="false" />
      </properties>
   </persistence-unit>
</persistence>

请给我一些提示,我真的找不到问题。

【问题讨论】:

    标签: jpa wildfly-8


    【解决方案1】:

    @PersistenceContext(unitName = "") 中的 unitName 应与 &lt;persistence-unit name="primary"&gt; 中定义的相同

    在您的情况下,它是“主要”而不是“DebitoAutomaticoMockDS”。

    解决方案: @PersistenceContext(unitName = "primary")

    【讨论】:

      猜你喜欢
      • 2017-11-01
      • 2015-08-15
      • 2016-05-29
      • 1970-01-01
      • 2016-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多