3

私は Wildfly 10 を使用しており、Spatial Hibernate 5 と PostGIS データベースを使用してアプリケーションを開発しています。実行時に以下のエラーが発生します。

java.lang.IllegalStateException: Received object of type org.postgresql.util.PGobject

Wildfly 10 で Spatial Hibernate を使用する方法について、誰かがいくつかの良いチュートリアルを提案できますか?

4

2 に答える 2

3

私は同じ問題を抱えていたので、それを修正しました。これは基本的に依存関係の問題です。問題は、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が言ったように試してみましたが、彼の問題は解決したかもしれませんが、うまくいきませんでした。彼は私にいくつかの手がかりを与えましたが。

そのため、インターネット上のほとんどのドキュメントは時代遅れであり、Hibernate Spatial 5 に関する情報はあまりありません。postgis-jdbc を maven に追加して、wildfly 内の postgresql の module.xml に追加しましたが、読んでいたので、Hibernate Spatial 5 ではこれは不要です。バツ。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 を使用してライブラリをトレースしてください。

于 2016-05-19T02:06:03.547 に答える