Wildfly 10 Окончательный драйвер postgres ClassCastException

в конце концов кто-то может мне помочь. В настоящее время у меня действительно странная проблема при запуске wildfly 10 Final с драйвером postgres, но с той же настройкой запускается wildfly 10 CR4.

Исключение, которое я получаю, следующее:

Caused by: javax.resource.ResourceException: IJ031089: Failed to load datasource: org.postgresql.Driver
    at org.jboss.jca.adapters.jdbc.local.LocalManagedConnectionFactory.getDataSource(LocalManagedConnectionFactory.java:650)
    at org.jboss.jca.adapters.jdbc.local.LocalManagedConnectionFactory.createLocalManagedConnection(LocalManagedConnectionFactory.java:311)
    ... 6 more
Caused by: java.lang.ClassCastException: org.postgresql.Driver cannot be cast to javax.sql.DataSource
    at org.jboss.jca.adapters.jdbc.local.LocalManagedConnectionFactory.getDataSource(LocalManagedConnectionFactory.java:633)
    ... 7 more

Странно то, что это работает на wildfly 10 CR4, но не на финальной версии wildfly 10 Final. Есть идеи? Для меня это похоже на проблему с загрузчиком классов, но я не настолько эксперт по wildfly, чтобы отследить ее.

мои modules/org/postgres/main/module.xml:

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" name="org.postgres">
  <resources>
    <resource-root path="postgresql-9.4.1208.jar"/>
  </resources>
  <dependencies>
    <module name="javax.api"/>
    <module name="javax.transaction.api"/>
    <module name="javax.servlet.api" optional="true"/>
  </dependencies>
</module>

Определение моего драйвера в standalone.xml

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

Java JDK: jdk1.8.0_73

Буду очень признателен за любую помощь в решении моей проблемы.

Спасибо заранее

/Дэйвид


person David M.    schedule 26.03.2016    source источник


Ответы (1)


Имя класса, реализующего DataSource:

org.postgresql.ds.PGSimpleDataSource

or

org.postgresql.ds.PGPoolingDataSource

https://jdbc.postgresql.org/documentation/head/ds-ds.html

Я предполагаю, что Wildfly будет управлять соединениями, поэтому вам, вероятно, не нужен источник данных пула, только простой: так и должно быть

<driver name="postgres" module="org.postgres">
    <xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class>
    <datasource-class>org.postgresql.ds.PGSimpleDataSource</datasource-class>
</driver>
person a_horse_with_no_name    schedule 26.03.2016
comment
ConnectionPoolDataSource не является (или не должен быть) DataSource. В случае PGConnectionPoolDataSource он реализует только ConnectionPoolDataSource. Насколько я могу судить, WildFly ожидает здесь DataSource. - person Mark Rotteveel; 26.03.2016
comment
Большое спасибо вам обоим! Судя по вашему ответу, это звучит разумно ;) datasource-class ожидает источник данных. В любом случае, большое спасибо! - person David M.; 26.03.2016