【问题标题】:Can't find a persistence unit named 'siscorp' in deployment javaee-angularjs.war在部署 javaee-angularjs.war 中找不到名为“siscorp”的持久性单元
【发布时间】:2018-09-23 07:05:55
【问题描述】:

我正在尝试在 Wildfly 11 服务器上部署我的应用程序,但遇到以下问题。

无法上传部署:{"WFLYCTL0080: Failed services" => {"jboss.deployment.unit.\"javaee-angularjs.war\".WeldStartService" => “启动服务失败原因: java.lang.IllegalArgumentException:WFLYWELD0037:注入错误 持久性单元到 CDI 托管 bean 中。找不到持久性单元 在部署 javaee-angularjs.war 中为注入点命名为“siscorp” 私有 javax.persistence.EntityManager br.com.rafaelvicio.siscorp.util.Persistence.entityManager"}}

这是我的持久化类:

package br.com.rafaelvicio.siscorp.util;

import javax.enterprise.context.ApplicationScoped;
import javax.enterprise.inject.Produces;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

@ApplicationScoped
public class Persistence {

      @PersistenceContext(unitName="siscorp")
      private EntityManager entityManager;

      @Produces
      public EntityManager getEntityManager() {
          return entityManager;
      }

}

这是我的 persistence.xml:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1"
    xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">

    <persistence-unit name="siscorp">

        <!-- provedor/implementacao do JPA -->
        <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>

        <!-- entidade mapeada -->
        <class>br.com.rafaelvicio.siscorp.model.CEP</class>

        <properties>
            <!-- dados da conexao -->
            <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
            <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost/siscorp" />
            <property name="javax.persistence.jdbc.user" value="root" />
            <property name="javax.persistence.jdbc.password" value="admin123" />

            <!-- propriedades do hibernate -->
            <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" />
            <property name="hibernate.show_sql" value="true" />
            <property name="hibernate.format_sql" value="true" />

            <!-- atualiza o banco, gera as tabelas se for preciso -->
            <property name="hibernate.hbm2ddl.auto" value="update" />

        </properties>
    </persistence-unit>
</persistence>

【问题讨论】:

  • 请更新添加项目文件树的问题。您的persistente.xml 可能位于错误的目录中。
  • @HenriqueFernandesCipriano github.com/rafaelvicio/CEP-rest 这是我的项目树。

标签: java jpa wildfly


【解决方案1】:

您收到此错误是因为 persistence.xml 文件未内置到您的 WAR 文件中。

这是因为你已经把它放在了src/main/java目录下,而且它是一个Maven项目。

除非您故意配置它(不推荐),否则 Maven 仅处理 src/main/java 中的 .java 源文件,而不处理其他任何内容。

您必须将META-INF 目录及其内容从src/main/java 移动到src/main/resources

感谢@Henrique 提出了正确的问题

【讨论】:

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