Wildfly 10 Final postgres 驱动程序 ClassCastException
Wildfly 10 Final postgres driver ClassCastException
最终有人可以帮助我。目前,当使用 postgres 驱动程序启动 wildfly 10 Final 时,我遇到了一个非常奇怪的问题,但使用相同的设置 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。任何的想法?
对我来说,它看起来像是一个 class 加载器问题,但我不是 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
如果能帮助解决我的问题,我将不胜感激。
提前致谢
/大卫
实现 DataSource 的 class 名称是:
org.postgresql.ds.PGSimpleDataSource
或
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>
最终有人可以帮助我。目前,当使用 postgres 驱动程序启动 wildfly 10 Final 时,我遇到了一个非常奇怪的问题,但使用相同的设置 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。任何的想法? 对我来说,它看起来像是一个 class 加载器问题,但我不是 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
如果能帮助解决我的问题,我将不胜感激。
提前致谢
/大卫
实现 DataSource 的 class 名称是:
org.postgresql.ds.PGSimpleDataSource
或
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>