我遇到了同样的问题,我刚刚解决了它。这基本上是一个依赖问题。问题是您在 Wildfly 模块和部署 WEB-INF/lib 上加载了 postgresql 和/或 postgis jar。
我在我的standalone.xml 上使用常规 DS 连接到我的数据库
<datasource jndi-name="java:jboss/datasources/mygisDS" pool-name="mygisDS" use-java-context="true">
<connection-url>jdbc:postgresql://localhost:5432/keycloak</connection-url>
<driver>org.postgresql</driver>
<transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
<pool>
<min-pool-size>10</min-pool-size>
<max-pool-size>100</max-pool-size>
<prefill>true</prefill>
<use-strict-min>false</use-strict-min>
<flush-strategy>FailingConnectionOnly</flush-strategy>
</pool>
<security>
<user-name>user</user-name>
<password>XXXXXX</password>
</security>
</datasource>
我的司机
<driver name="org.postgresql" module="org.postgresql">
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class>
</driver>
我按照@Toastor 的说法尝试过,它可能解决了他的问题,但对我没有用。虽然他给了我一些线索。
因此,互联网上的大多数文档都已过时,并且关于休眠空间 5 的文档并不多。我将 postgis-jdbc 添加到我的 maven 到我的 wildfly 中的 postgresql 的 module.xml 中,但是当我在阅读 THIS IS NOT NECESSARY 时休眠空间 5.X。 Wildfly 10 默认使用 5.0.7,我使用的是 hibernate 5.1.0.Final,所以我没有将 pom.xml 上任何 hibernate 组件的范围设置为“提供”。
但一切也一直失败。所以我追踪了我的图书馆。
mvn dependency:tree
您必须检查是否有任何被调用的 postgresql 库或任何 postgis 库。我发现 Hibernate Spatial 5.1 有一些 postgresql 依赖项,所以我将它们排除在 hibernate spatial 之外。
<exclusion>
<artifactId>postgresql</artifactId>
<groupId>org.postgresql</groupId>
</exclusion>
我这样做了,我发现 PGobject 有问题,它说类似于找不到类。所以我将它添加到 jboss-deployment-structure.xml
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
<deployment>
<dependencies>
<module name="org.postgresql" />
</dependencies>
</deployment>
</jboss-deployment-structure>
这确实奏效了。如果您有类似的问题,请使用 maven dependency:tree 来跟踪您的库。