У меня есть драйвер jdbc postgres, настроенный как модуль в Wildfly 10. Что я пытаюсь сделать, это использовать этот драйвер в качестве зависимости в приложении, которое будет развернуто на сервере, - поэтому в приложении я отмечаю эта зависимость, как предусмотрено (в файле pom.xml), но кажется, что она не работает.Проблема с Wildfly Postgres JDBC
Текущая конфигурация:
Wildfly Postgres модуль добавлен в wildfly-10.1.0.Final\modules\org\postgresql\main
, где есть: postgresql-9.4-1206-jdbc4.jar
и module.xml
с следующим содержанием:
<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>
Модуль используется для определения источника данных. К этому моменту все работает хорошо - с помощью таблиц спящего режима счастливо отображаются сущности. За исключением одной вещи:
Я начал карту Postgres-jsonb колонн с использованием javax.persistence.AttributeConverter
и происходит следующее:
Сценарий 1
Когда я использую postgresql-9.4-1206-jdbc4.jar
как provided
(в pom.xml - развернутое приложение) , я получаю следующее сообщение об ошибке пытается преобразовать все:
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
Сценарий 2
Когда я использую postgresql-9.4-1206-jdbc4.jar
с областью по умолчанию, есть следующие ошибки:
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
Что означает: загрузчик классов загрузить одну и ту же Jar два раза, и не может бросить этот объект сам по себе.
Вопрос: Почему provided
Объем зависимости не работает для добавления вручную (для wildfly) postgres driver? (Я думаю, это было бы решением для меня)
не могли бы вы вставить свой «pom.xml», отредактировав свой ответ? Я застрял точно так же, как и вы, но второе предложение по выбранному ответу не решило мою проблему. Боюсь, я немного изменил то, что вы сделали. Заранее спасибо – GabrielRado