wildfly 14: Сервисы с отсутствующими / недоступными зависимостями - PullRequest
0 голосов
/ 05 ноября 2018

Я новичок в wildfly и jpa.

Я использовал eclipselink версии 2.7.3 для библиотеки

это моя ссылка для файлов POM, постоянства и автономных

при развертывании файла с ушами я получаю эту ошибку:

{
   "WFLYCTL0412: Required services that are not installed:" =>   ["jboss.naming.context.java.app.EnterpriseSPIN-ear.jdbc.digisign_db"],
  "WFLYCTL0180: Services with missing/unavailable dependencies" => ["jboss.persistenceunit.\"EnterpriseSPIN-ear.ear#digisignPU\" is missing    [jboss.naming.context.java.app.EnterpriseSPIN-ear.jdbc.digisign_db]"]
}

моя настойчивость xml

  <?xml version="1.0" encoding="UTF-8"?>
  <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="digisignPU" transaction-type="JTA">
     <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
     <jta-data-source>java:jboss/datasources/digisign</jta-data-source>

    <properties>
      <property name="eclipselink.target-server" value="JBoss"/>
      <property name="eclipselink.target-database" value="PostgreSQL"/>
      <property name="eclipselink.deploy-on-startup" value="true"/>
      <property name="eclipselink.jdbc.user" value="someuser"/>
      <property name="eclipselink.jdbc.password" value="somepassword"/>
      <property name="eclipselink.jdbc.driver" value="org.postgresql.Driver"/>
      <property name="eclipselink.jdbc.url" value="jdbc:postgresql://192.168.182.7:5432/digisign_db"/>
      <property name="eclipselink.ddl-generation" value="none"/>
    </properties>
  </persistence-unit>
</persistence>

мой автономный xml

<datasources>
            <datasource jta="true" jndi-name="java:jboss/datasources/digisign" pool-name="digisign" enabled="true" use-java-context="true">
                <connection-url>jdbc:postgresql://192.168.182.7:5432/digisign_db</connection-url>
                <driver>postgresql</driver>
                <security>
                    <user-name>someuser</user-name>
                    <password>somepassword</password>
                </security>
            </datasource>
            <drivers>
                <driver name="postgresql" module="org.postgresql">
                    <driver-class>org.postgresql.Driver</driver-class>
                </driver>
            </drivers>
        </datasources>

это мой модуль postgresql 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.2.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module>

и это мой модуль персистентности eclipselink xml

<module name="org.eclipse.persistence" xmlns="urn:jboss:module:1.5">
<properties>
    <property name="jboss.api" value="public"/>
</properties>

<resources>
    <resource-root path="jipijapa-eclipselink-14.0.1.Final.jar"/>
    <resource-root path="eclipselink.jar">
     <filter>
            <exclude path="javax/**"/>
    </filter>
    </resource-root>
</resources>
<dependencies>
    <module name="asm.asm"/>
    <module name="javax.api"/>
    <module name="javax.annotation.api"/>
    <module name="javax.enterprise.api"/>
    <module name="javax.persistence.api"/>
    <module name="javax.transaction.api"/>
    <module name="javax.validation.api"/>
    <module name="javax.xml.bind.api"/>
    <module name="javax.ws.rs.api"/>
    <module name="org.antlr"/>
    <module name="org.apache.commons.collections"/>
    <module name="org.dom4j"/>
    <module name="org.jboss.as.jpa.spi"/>
    <module name="org.jboss.logging"/>
    <module name="org.jboss.vfs"/>
</dependencies>

Я пробовал это много раз, но безуспешно. Пожалуйста, помогите!

Ответы [ 2 ]

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

Из интереса я создал небольшой пример . (Это просто быстрый взлом: -)

Работает на wildfly 14 с базами данных h2 и postgres. Попробуйте сравнить этот пример с вашим приложением.

Я также посмотрел на ваш pom.xml . Существуют зависимости, которые должны быть установлены в предусмотренной области. Попробуйте установить для eclipselink и postgres зависимости. Они не должны быть добавлены к вашему ear. Они предоставляются от дикой бабочки.

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

У меня есть рабочий проект (работающий под Wildfly), для которого мне не нужно было включать префикс "java:" в источник данных, определенный в persistence.xml:

В standalone.xml

<datasource jta="true" jndi-name="java:/jdbc/xxx"> 

В постоянстве.xml

<persistence version="2.1" ...>
    <persistence-unit name="myPU" >
        ...
        <jta-data-source>jdbc/xxx</jta-data-source> 
...