2015-01-11 4 views
4

Я пытаюсь добавить новый источник данных JDBC для MySQL драйвера для моего wildfly сервераДобавить Datasource (MySQL) wildfly

Я создал папку wildfly.xxx/modules/system/layers/base/com/mysql/main у меня здесь JDBC .jar файл и module.xml

<module xmlns="urn:jboss:module:1.3" name="com.mysql"> 
     <resources> 
     <resource-root path="mysql-connector-java-5.1.34-bin.jar"/> 
    </resources> 
    <dependencies> 
     <module name="javax.api"/> 
    </dependencies> 
    </module> 

затем добавил dataresource кода в автономный-full.xml (под datareources тега)

<datasource jndi-name="java:jboss/datasources/MySQLDS" pool-name="MySQLDS"  enabled="true" use-java-context="true"> 
<connection-url>jdbc:mysql://localhost:3306/test</connection-url> 
<driver>MySQLDriver</driver> 
<security> 
<user-name>root</user-name> 
<password></password> 
</security> 
</datasource> 

, но когда я иду к wildfly прода rol panel http://localhost:9990/console/ dataresource не появляется, что я пропустил?

также я пытаюсь добавить его вручную из интерфейса i'v получил эту ошибку

Unexpected HTTP response: 500 

Request 
{ 
    "address" => [ 
     ("subsystem" => "datasources"), 
     ("data-source" => "mysql") 
    ], 
    "operation" => "test-connection-in-pool" 
} 

Response 

Internal Server Error 
{ 
    "outcome" => "failed", 
    "failure-description" => "JBAS010440: failed to invoke operation: JBAS010447: Connection is not valid", 
    "rolled-back" => true 
} 

ответ

8

ли вы добавить определение драйвера? Ваша datasources подсистема должна выглядеть примерно так:

<subsystem xmlns="urn:jboss:domain:datasources:2.0"> 
     <datasources> 
      <datasource jndi-name="java:/jdbc/myds" pool-name="myds" enabled="true" use-java-context="true"> 
       <connection-url>jdbc:mysql://localhost/mydb</connection-url> 
       <driver>mysql</driver> 
       <security> 
        <user-name>foo</user-name> 
        <password>bar</password> 
       </security> 
      </datasource> 
      <drivers> 
       <driver name="h2" module="com.h2database.h2"> 
        <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class> 
       </driver> 
       <driver name="mysql" module="com.mysql"> 
        <xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class> 
       </driver> 
      </drivers> 
     </datasources> 
    </subsystem> 

driver элемент в определении источника данных должен ссылаться на driver элемент по имени. Атрибут module должен соответствовать имени вашего модуля драйверов MySQL.

0

Также создайте базу данных, которую вы будете использовать. Иногда причиной этой ошибки является отсутствие базы данных.

3

На самом деле я встречаюсь с той же проблемой (я мог бы добавить источники данных и тестовое соединение успешно раньше) Так что я просто растерялся, и я нахожу способ работает для меня :)

Смотрите мои услуги, и я нахожу это остановилось , и я начал его, потом снова попробовал, он снова работает! Даже если ваша служба не останавливается, возможно, просто перезапустите ее. я должен сказать, что это не может работать для вас, если вы никогда не успех для подключения до, удачи ~

enter image description here

enter image description here

1

Есть three ways с помощью которого вы можете просто создать источник данных в wildfly

  1. Использование консоли администратора
  2. Ввод вручную в standalone.xml
  3. Создание файла источника данных, являющегося файлом xml.

Перейти к WildFly каталог/автономные/развертывания простого способа создать источник данных XML с следующим содержанием

<datasources xmlns="http://www.jboss.org/ironjacamar/schema"> 
     <datasource jndi-name="APP_DS" pool-name="APP_DS" enabled="true" use-ccm="false"> 
     <connection-url>jdbc:mysql://localhost:3306/DB_NAME</connection-url> 
     <driver-class>com.mysql.jdbc.Driver</driver-class> 
     <driver>mysql</driver> 

     <!-- sql to call when connection is created --> 
     <new-connection-sql>SELECT 1</new-connection-sql> 

     <pool> 
      <min-pool-size>5</min-pool-size> 
      <max-pool-size>50</max-pool-size> 
     </pool> 

     <security> 
      <user-name>username</user-name> 
      <password>password</password> 
     </security> 

     <!-- sql to call on an existing pooled connection when it is obtained from pool --> 
     <validation> 
     <check-valid-connection-sql>SELECT 1</check-valid-connection-sql> 
     </validation> 

     <timeout> 
     <blocking-timeout-millis>300000</blocking-timeout-millis> 
     <idle-timeout-minutes>5</idle-timeout-minutes> 
     </timeout> 
     <statement> 
     <track-statements>true</track-statements> 
     </statement>  
     </datasource> 
    </datasources> 
Смежные вопросы