Подтвердить что ты не робот

Как настроить источник данных в wildfly 10?

Я начинаю знакомство с изучением дикой природы. Я загрузил дистрибуцию сервера.
Теперь я пытаюсь настроить 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> 
  1. Модифицированный standalone.xml (wildfly-10.0.0.CR2\wildfly-10.0.0.CR2\standalone\configuration) как это (извините - я не знаю, как скопировать xml, чтобы он мог быть видимым для других пользователей (полный контент, видимый здесь: http://collabedit.com/psk4a)):

Пожалуйста, помогите понять, что я не так?

введите описание изображения здесь

4b9b3361

Ответ 1

Проблема решена после перемещения module.xml до wildfly-10.0.0.CR2\wildfly-10.0.0.CR2\modules\org\postgres\main

Ответ 2

Ниже приведена конфигурация драйвера и создание источника данных и как сделать его глобально видимым, чтобы все развертывания J2EE могли получить доступ к определенному модулю, если это необходимо.

1. Конфигурация драйвера PostGreSQL

Создайте структуру каталога, как показано ниже, в модулях в каталоге 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.

2. Настройка источников данных

Источники данных настраиваются в файле 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.

Ответ 3

Я не на 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 + конфигурации

Ответ 4

Я хотел бы сказать, что я решил проблему, только используя консоль администратора wildfly (http://localhost:9990/console/). Не так спартанское решение, но оно работает. Я указал только jar-драйвер JDBC из внешнего каталога и после создания источника данных. Нет xml вручную и не изменяйте структуру каталогов wildfly. Для java 8 + postgresql 9.5 я использовал postgresql-42.1.1.jar. У меня были проблемы только потому, что я выбрал неправильный драйвер и имя базы данных было неправильным.