Ответ 1
Проблема решена после перемещения module.xml
до wildfly-10.0.0.CR2\wildfly-10.0.0.CR2\modules\org\postgres\main
Я начинаю знакомство с изучением дикой природы.
Я загрузил дистрибуцию сервера.
Теперь я пытаюсь настроить datasource, но я вижу следующую ошибку:
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
из \.m2\repository\postgresql\postgresql\9.0-801.jdbc4
там.
2.Created 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 и поместите указанные файлы и фразу драйвера. Каталог: 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. Обратите внимание, что драйвер name= "org.postgresql", указанный в файле module.xml, должен соответствовать конфигурации источника данных в файле standalone.xml.
Примечание. Версия драйвера PostGreSQL должна быть совместима с версией java в системе. В этом примере java равен 1.7, а для используемого драйвера PostGreSQL используется postgresql-9.4-1204.jdbc41.jar.
Источники данных настраиваются в файле standalone.xml в конфигурации WildFly 8.2.0.Final\standalone \. В качестве первого шага настройте ссылку на драйвер PostGreSQL в файле standalone.xml, как показано ниже в теге
<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>
Примечание. Глобальные модули - это набор модулей JBoss, которые будут добавлены в зависимости от модуля JBoss каждого развертывания Java EE. Такие зависимости позволяют развертываниям Java EE просматривать классы, экспортируемые глобальными модулями. См. https://docs.jboss.org/author/display/WFLY8/Subsystem+configuration
После настройки выше, пожалуйста, запустите свой экземпляр WildFly.
Я не на 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: Соединение jdbc с WildFly с Oracle
где ответ ссылается на этот связанный с ним форум JBoss: https://developer.jboss.org/thread/257721
Настройки пула, кстати, упоминаются в документации по конфигурации Wildfly. Это Wildfly 9, но я не могу себе представить, что в Wildfly 10 многое изменилось: https://docs.jboss.org/author/display/WFLY9/DataSource + конфигурации
Я хотел бы сказать, что я решил проблему, только используя консоль администратора wildfly (http://localhost:9990/console/). Не так спартанское решение, но оно работает. Я указал только jar-драйвер JDBC из внешнего каталога и после создания источника данных. Нет xml вручную и не изменяйте структуру каталогов wildfly. Для java 8 + postgresql 9.5 я использовал postgresql-42.1.1.jar. У меня были проблемы только потому, что я выбрал неправильный драйвер и имя базы данных было неправильным.