JPA, Wildfly 14 и PostgreSQL - PullRequest
       13

JPA, Wildfly 14 и PostgreSQL

0 голосов
/ 31 октября 2018

Я пытаюсь подключиться к моей базе данных PostgreSQL с JPA и wildfly 14 в качестве веб-сервера. Я следовал нескольким урокам, но всегда получаю:

Не удается найти единицу сохранения с именем 'test'

Что я сделал:

скачайте postgresql-42.2.5.jar и скопируйте его в "wildfly-14.0.1.Final \ modules \ system \ слои \ base \ org \ postgres \ main \" module.xml в том же каталоге

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.3" name="org.postgresql">
    <resources>
        <resource-root path="postgresql-42.2.5.jar"/>
        <!-- Make sure this matches the name of the JAR you are installing -->
    </resources>
    <dependencies>
        <module name="javax.api"/>
        <module name="javax.transaction.api"/>
    </dependencies>
</module>

затем изменил standallone-full.xml

<datasource jta="true" jndi-name="java:jboss/datasources/test" pool-name="test" enabled="true" use-ccm="true">
  <connection-url>jdbc:postgresql://localhost:5432/test</connection-url>
  <driver-class>org.postgresql.Driver</driver-class>
  <driver>postgres</driver>
  <security>
      <user-name>postgres</user-name>
      <password>8a6rbd7a5c3a3fsavf4rq</password>
  </security>

и

<driver name="postgres" module="org.postgres">
    <driver-class>org.postgresql.Driver</driver-class>
</driver>

теперь 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="test" transaction-type="JTA">
            <provider>org.hibernate.ejb.HibernatePersistence</provider>
            <jta-data-source>java:jboss/datasources/test</jta-data-source>
            <properties>
                <property name="hibernate.hbm2ddl.auto" value="update" />
                <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" />
            </properties>    
        </persistence-unit>
</persistence>

после этого, конечно, немного java:

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

Итак, это все, что я сделал - но попробовал больше ... В развертывании появилась ошибка:

WFLYWELD0037: Ошибка при внедрении модуля персистентности в управляемый компонент CDI. Не удается найти модуль сохранения с именем 'test' в развертывании ...

Понятия не имею, что делать. Я забыл некоторые maven-зависимости?

Помогите, пожалуйста.

1 Ответ

0 голосов
/ 01 ноября 2018

name в module.xml должен соответствовать пути. (без основного)

Измените его на <module xmlns="urn:jboss:module:1.3" name="org.postgres">

EDIT:

Также рекомендуемое место для размещения ваших модулей - непосредственно в $ JBOSS_HOME \ modules

Итак, в вашем случае: $JBOSS_HOME\modules\org\postgres\main\

...