Ich habe postgres jdbc Treiber als Modul in Wildfly konfiguriert 10. Was ich versuche zu tun, ist es, diesen Treiber als Abhängigkeit in der Anwendung zu verwenden, die auf dem Server bereitgestellt wird - so in der Anwendung markiere ich Diese Abhängigkeit wie angegeben (in der Datei pom.xml), scheint aber nicht zu funktionieren.Wildfly Postgres JDBC Modul Ausgabe
Aktuelle Konfiguration:
Wildfly postgres Modul wird bei wildfly-10.1.0.Final\modules\org\postgresql\main
hinzugefügt, wo es: postgresql-9.4-1206-jdbc4.jar
und module.xml
mit folgendem Inhalt:
<module xmlns="urn:jboss:module:1.1" name="org.postgresql">
<resources>
<resource-root path="postgresql-9.4-1206-jdbc4.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module>
Modul verwendet wird, Datenquelle zu definieren. Bis zu diesem Punkt funktioniert alles gut - mit Hilfe von Hibernate-Hilfetabellen werden erfreulicherweise Entitäten zugeordnet. Mit Ausnahme eines:
begann ich Postgres-jsonb Spalten mit der Verwendung von javax.persistence.AttributeConverter
und nach geschieht zur Karte:
Szenario 1
Wenn ich postgresql-9.4-1206-jdbc4.jar
als provided
(in pom.xml - implementierte Anwendung) , bekomme ich folgende Fehler versuchen, etwas zu konvertieren:
Caused by: java.lang.ClassNotFoundException: org.postgresql.util.PGobject from [Module "deployment.priject-1.0.1.ear.project.data-1.0.1-SNAPSHOT.jar:main" from Service Module Loader]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:198)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:363)
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:351)
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:93)
... 269 more
Szenario 2
Als ich postgresql-9.4-1206-jdbc4.jar
mit Standardbereich verwenden, wird es Fehler folgende:
Caused by: java.lang.ClassCastException: org.postgresql.util.PGobject cannot be cast to org.postgresql.util.PGobject
at com.project.entity.util.converters.JSONBTypeConverter.convertToEntityAttribute(JSONBTypeConverter.java:33)
at com.project.entity.util.converters.JSONBTypeConverter.convertToEntityAttribute(JSONBTypeConverter.java:1)
at org.hibernate.type.descriptor.converter.AttributeConverterSqlTypeDescriptorAdapter$2.doConversion(AttributeConverterSqlTypeDescriptorAdapter.java:140)
... 266 more
Das heißt: Class-Loader das gleiche Glas zweimal laden und dieses Objekt sich nicht werfen kann.
Frage: Warum provided
Bereich der Abhängigkeit funktioniert nicht für manuell hinzugefügt (zu wildfly) Postgres-Treiber? (Ich denke, das wäre die Lösung für mich)
Könnten Sie bitte Ihre 'pom.xml' einfügen und Ihre Antwort bearbeiten? Ich stecke genauso fest wie du, aber der zweite Vorschlag zur ausgewählten Antwort hat mein Problem nicht gelöst. Ich fürchte, ich habe etwas anders gemacht als das, was du getan hast. Vielen Dank im Voraus – GabrielRado