2016-10-05 5 views
2

Я пытаюсь переместить мой веб-сервис Tomcat в Wildfly 10. Я думал, что он должен перетащить в папку развертывания Wildfly, и все должно быть хорошо, но похоже, что это не так.Как настроить MariaDB JNDI на Wildfly 10?

Это мое MariaDB определение DataSource в standalone.xml:

<datasource jndi-name="java:jboss/MariaDBDS" pool-name="MariaDBDS"> 
    <connection-url>jdbc:mariadb://db_ip/db_name</connection-url> 
    <driver>mariadb</driver> 
    <security> 
     <user-name>dbAcc</user-name> 
     <password>dbPassword</password> 
    </security> 
    <validation> 
     <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"/> 
     <validate-on-match>true</validate-on-match> 
     <background-validation>false</background-validation> 
     <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter"/> 
    </validation> 
    </datasource> 
    <drivers> 
     <driver name="mariadb" module="org.mariadb"> 
      <driver-class>org.mariadb.jdbc.Driver</driver-class> 
      <xa-datasource-class>org.mariadb.jdbc.MariaDbDataSource</xa-datasource-class> 
     </driver> 
    </drivers> 

тогда я поставил mariadb-java-client-1.4.6.jar и мой файл WAR в wildfly/standalone/deployments, запустите Wildfly, и сообщения об ошибках пришли мне в глаза:

07:05:21,137 INFO [org.wildfly.extension.undertow] (ServerService Thread Pool -- 60) WFLYUT0021: Registered web context: /MySV 
07:05:21,143 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("add") failed - address: ([ 
("subsystem" => "datasources"), 
("data-source" => "MariaDBDS") 
]) - failure description: { 
"WFLYCTL0412: Required services that are not installed:" => ["jboss.jdbc-driver.mariadb"], 
"WFLYCTL0180: Services with missing/unavailable dependencies" => [ 
    "jboss.driver-demander.java:jboss/MariaDBDS is missing [jboss.jdbc-driver.mariadb]", 
    "org.wildfly.data-source.MariaDBDS is missing [jboss.jdbc-driver.mariadb]" 
] 
} 
07:05:21,148 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("add") failed - address: ([ 
("subsystem" => "datasources"), 
("data-source" => "MariaDBDS") 
]) - failure description: { 
"WFLYCTL0412: Required services that are not installed:" => [ 
    "jboss.jdbc-driver.mariadb", 
    "jboss.jdbc-driver.mariadb" 
], 
"WFLYCTL0180: Services with missing/unavailable dependencies" => [ 
    "jboss.driver-demander.java:jboss/MariaDBDS is missing [jboss.jdbc-driver.mariadb]", 
    "org.wildfly.data-source.MariaDBDS is missing [jboss.jdbc-driver.mariadb]", 
    "org.wildfly.data-source.MariaDBDS is missing [jboss.jdbc-driver.mariadb]" 
] 
} 

Я не могу позволить моему сервису подключиться к БД, я пропустил какой-либо шаг?

ответ

0

Если я смотрю вашу конфигурацию, вы устанавливаете драйвер как модуль. Таким образом, вы создаете его как модуль на своем сервере, а не развертываете его как отдельную банку в папке развертывания.

Если вы хотите настроить источник данных, где водитель находится в папке развертываний, вы делаете что-то вроде этого:

<datasource jndi-name="java:jboss/MariaDBDS" pool-name="MariaDBDS"> 
    <connection-url>jdbc:mariadb://db_ip/db_name</connection-url> 
    <driver>mariadb-java-client-1.4.6.jar</driver> 
    <driver-class>org.mariadb.jdbc.Driver</driver-class> 
    <security> 
     <user-name>dbAcc</user-name> 
     <password>dbPassword</password> 
    </security> 
    <validation> 
     <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"/> 
     <validate-on-match>true</validate-on-match> 
     <background-validation>false</background-validation> 
     <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter"/> 
    </validation> 
</datasource> 

Нет отдельной декларации водитель, его все содержащиеся в конфигурации источника данных.

+0

woo, это работает! Но я пробовал Jboss EAP 6.4 раньше, и он развертывает JDBC туда, где он принадлежит автоматически, когда я перетаскиваю новый JDBC в свою папку развертываний. Разве не Wildfly 10 больше, чем EAP 6.4? – Kaninchen

+0

Это может быть разница в инструментах управления, которые поставляются с коммерческими выпусками EAP, я действительно не знаю. – Gimby

+0

ОК. спасибо за помощь в моей текущей проблеме. – Kaninchen

Смежные вопросы