Search code examples
postgresqleclipselinkwildflyjpa-2.0ejb-3.1

wildfly 14 : Services with missing/unavailable dependencies


I am new to wildfly and jpa.

I'm used eclipselink version 2.7.3 for library

this is my link for POM, persistence, and standalone files

when I deploying my ear file's I'm getting this error:

{
   "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]"]
}

my persistence 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>

my standalone 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>

this my postgresql 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.2.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module>

and this my eclipselink persistence module 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>

I have tried it many times but I've been unsuccessful. Please help!


Solution

  • Out of interrest i created a small example. (It is just a quick hack :-)

    It is working on wildfly 14 with databases h2 and postgres. Try to compare this example with your application.

    I also had a look at your pom.xml. There are dependencies which should be set to scope provided. Try to set eclipselink and postgres dependencies to provided. They should not be added to your ear. They are provided from wildfly.