Wildfly Learningの紹介を始めています。サーバーの配布をダウンロードしました。
今、データソースを設定しようとしていますが、次のエラーが表示されます。
Unexpected HTTP response: 500
Request
{
"address" => [
("subsystem" => "datasources"),
("data-source" => "PostgreDataSource")
],
"operation" => "test-connection-in-pool"
}
Response
Internal Server Error
{
"outcome" => "failed",
"failure-description" => "WFLYJCA0040: failed to invoke operation: WFLYJCA0042: failed to match pool. Check JndiName: Java:jboss/datasources/PostgreDataSource",
"rolled-back" => true
}
私の手順:
1。作成されたフォルダーwildfly-10.0.0.CR2\wildfly-10.0.0.CR2\modules\org\postgres\main
とコピーpostgresql-9.0-801.jdbc4.jar
from \.m2\repository\postgresql\postgresql\9.0-801.jdbc4
そこ。
2. module.xmlの作成(wildfly-10.0.0.CR2\wildfly-10.0.0.CR2\modules
):
次のコンテンツ:
<module xmlns="urn:jboss:module:1.0" name="org.postgres">
<resources>
<resource-root path="postgresql-9.0-801.jdbc4.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module>
standalone.xml
(wildfly-10.0.0.CR2\wildfly-10.0.0.CR2\standalone\configuration
)このように(申し訳ありません-xmlをコピーして他のユーザーに見えるようにする方法がわかりません(ここにすべてのコンテンツが表示されます: http://collabedit.com/psk4a )):私が間違っていることを理解するのを助けてください?
移動後に解決された問題module.xml
からwildfly-10.0.0.CR2\wildfly-10.0.0.CR2\modules\org\postgres\main
以下は、ドライバー構成とデータソースの作成、および必要に応じてすべてのJ2EEデプロイメントが特定のモジュールにアクセスできるようにグローバルに表示する方法です。
Wildfly-8.2.0.Final\modulesディレクトリ内のモジュール内に次のようなディレクトリ構造を作成し、上記のファイルとドライバjarを配置します。ディレクトリ:wildfly-8.2.0.Final\modules\org\postgresql\main
ファイル:module.xml
<!--<?xml version="1.0" encoding="UTF-8"?>-->
<module xmlns="urn:jboss:module:1.0" name="org.postgresql">
<resources>
<resource-root path="postgresql-9.4-1204.jdbc41.jar"/>
</resources>
<dependencies><module name="javax.api"/></dependencies>
</module>
JAR:PostGreSQLドライバー:postgresql-9.4-1204.jdbc41.jar
注:ドライバーのバージョンは選択できます。そのバージョン名をmodule.xmlファイルに必ず反映してください。 module.xmlファイルに記載されているドライバーname = "org.postgresql"は、standalone.xmlファイルのデータソース構成と一致する必要があることに注意してください。
注:PostGreSQLドライバーのバージョンは、システムのJavaバージョンと互換性があります。この例では、Javaは1.7で、使用されるPostGreSQLドライバーはpostgresql-9.4です。 -1204.jdbc41.jar。
データソースは、WildFly 8.2.0.Final\standalone\configurationのstandalone.xmlファイルで構成されます。最初のステップとして、タグ内で次のようにstandalone.xmlファイルでPostGreSQLドライバー参照を構成します
<driver name="postgresql" module="org.postgresql">
<datasource-class>org.postgresql.Driver</datasource-class>
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class>
</driver>
1.データソースの詳細を追加します。
この内部タグを追加してください
<datasource jndi-name="Java:/db1" pool-name="db1" enabled="true" use-Java-context="true">
<connection-url>jdbc:postgresql://localhost:5432/dbname</connection-url>
<driver>postgresql</driver>
<security>
<user-name>user_name</user-name>
<password>password</password>
</security>
</datasource>
2.セクションに追加して、公開されたドライバーをグローバルに表示する
ここにあります:
<global-modules>
<module name="org.postgresql" slot="main"/>
</global-modules>
注:グローバルモジュールは、すべてのJava EEデプロイメントの依存関係としてJBossモジュールに追加されるJBossモジュールのセットです。このような依存関係により、Java EEデプロイメントグローバルモジュールによってエクスポートされたクラスを確認するには、以下を参照してください。 https://docs.jboss.org/author/display/WFLY8/Subsystem+configuration
上記を設定したら、WildFlyインスタンスを起動してください。
Wildfly管理コンソール( http:// localhost:9990/console / )を使用してのみ問題を解決したと言いたいです。質素なソリューションではありませんが、機能します。 JDBCドライバーjarを外部ディレクトリから指定したのは、データソースを作成した後だけです。手作業でxmlを使用したり、wildflyのディレクトリ構造を変更したりする必要はありません。 Java 8 + postgresql 9.5でpostgresql-42.1.1.jarを使用しました。間違ったドライバーを選択し、データベースの名前が間違っていたために問題が発生しました。
私は100%前向きではありませんが、ネットの周りにいくつかのリンクがある場合、デフォルトのプール設定が原因である可能性があります。特定のプール構成設定をデータソースに追加してみてください。
<datasource jndi-name="blabla"... >
<pool>
<min-pool-size>1</min-pool-size>
<max-pool-size>20</max-pool-size>
<prefill>true</prefill>
</pool>
</datasource>
このstackoverflowスレッドに基づいています: OracleとのWildFly jdbc接続
この関連するJBossフォーラムスレッドへの回答リンク: https://developer.jboss.org/thread/257721
ところで、プールの設定はWildflyの構成ドキュメントに記載されています。これはWildfly 9ですが、Wildfly 10で物事が大きく変わることは想像できません。 https://docs.jboss.org/author/display/WFLY9/DataSource+configuration