2016-03-26 5 views
4

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

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

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. Есть идеи? Для меня это похоже на проблему загрузчика класса, но я не специалист по дикой природе, чтобы ее отслеживать.

мои модули/орг/Postgres/основные/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

Приятно оценить любую помощь, чтобы исправить мою проблему.

Thx заранее

/Дэвид

ответ

11

Имя класса реализации DataSource либо:

org.postgresql.ds.PGSimpleDataSource 

или

org.postgresql.ds.PGPoolingDataSource 

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

Я полагаю, Wildfly будет управлять соединения, так что вы, вероятно, не нужно объединение DataSource, только простое: Так оно и должно быть

<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> 
+1

Символ 'ConnectionPoolDataSource' не является (или не должно быть)' DataSource '. В случае 'PGConnectionPoolDataSource' он только реализует' ConnectionPoolDataSource'. Насколько я могу судить, WildFly ожидает здесь «DataSource». –

+0

@MarkRotteveel: вы правы. Исправлено. –

+1

Спасибо вам большое! Чтение вашего ответа звучит резонно;) _datasource-class_ ожидает источник данных. В любом случае, thx много! –

Смежные вопросы