数据库
首页 > 数据库> > wildfly注册mysql作为数据源

wildfly注册mysql作为数据源

作者:互联网

我一直在尝试将mysql配置为wildfly中的数据源.我不确定我错过了什么,我在启动时收到错误.

我有mysql-connector-java-5.0.8-bin.jar和文件夹中的module.xml:
“/wildfly-8.1.0.Final/modules/system/layers/base/com/mysql/main”

以下是文件

module.xml

    <module xmlns="urn:jboss:module:1.1" 
        name="com.mysql">
    <resources>
        <resource-root path="mysql-connector-java-5.0.8.jar"/>
        <!-- Insert resources here -->
    </resources>
    <dependencies>
        <module name="javax.api"/>
        <module name="javax.transaction.api"/>
        <module name="javax.servlet.api" optional="true"/>
    </dependencies>
</module>

standalone.xml

  <datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true">
    <connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE</connection-url>
    <driver>h2</driver>
    <security>
      <user-name>sa</user-name>
      <password>sa</password>
    </security>
  </datasource>
  <datasource jta="true" jndi-name="java:jboss/datasources/proj" pool-name="proj" enabled="true" use-java-context="true" use-ccm="true">
    <connection-url>jdbc:mysql://localhost:3306</connection-url>
    <driver>mysql</driver>
    <security>
      <user-name>root</user-name>
      <password>admin123</password>
    </security>
    <statement>
      <prepared-statement-cache-size>32</prepared-statement-cache-size>
      <share-prepared-statements>true</share-prepared-statements>
    </statement>
  </datasource>
  <drivers>
    <driver name="mysql" module="com.mysql">
      <xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class>
    </driver>
    <driver name="h2" module="com.h2database.h2">
      <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
    </driver>
  </drivers>
</datasources>

我已经在eclipse中使用独立程序测试了jdbc连接,但它确实有效

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;


public class ConnectSql {
    public static void main(String []args){
        String userName = "root";
        String pass = "admin123";
        String url = "jdbc:mysql://localhost/";
        String driver ="com.mysql.jdbc.Driver";
        String db = "proj";

        try{
            //registering the driver.
            Class.forName(driver);
            Connection con = DriverManager.getConnection(url+db,userName,pass);
            Statement st = con.createStatement();
            ResultSet rs = st.executeQuery("select f_name from t_users");
            while(rs.next()){
                System.out.println("name :"+rs.getString(1));
            }


        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        catch(ClassNotFoundException cnf){
            cnf.printStackTrace();
        }
    }
}

提到下面的链接并修改了module.xml

Wildfly 8.0.0 mysql problems with datasource

这是我启动时的错误日志

02:45:17,169 ERROR [org.jboss.as.controller.management-operation]
(Controller Boot Thread) JBAS014613: Operation (“add”) failed –
address: ([
(“subsystem” => “datasources”),
(“data-source” => “proj”) ]) – failure description: {“JBAS014771: Services with missing/unavailable dependencies” => [
“jboss.data-source.java:jboss/datasources/proj is missing [jboss.jdbc-driver.mysql]”,
“jboss.driver-demander.java:jboss/datasources/proj is missing [jboss.jdbc-driver.mysql]” ]} 02:45:17,175 ERROR
[org.jboss.as.controller.management-operation] (Controller Boot
Thread) JBAS014613: Operation (“add”) failed – address: ([
(“subsystem” => “datasources”),
(“data-source” => “proj”) ]) – failure description: {
“JBAS014771: Services with missing/unavailable dependencies” => [
“jboss.data-source.java:jboss/datasources/proj is missing [jboss.jdbc-driver.mysql]”,
“jboss.driver-demander.java:jboss/datasources/proj is missing [jboss.jdbc-driver.mysql]”
],
“JBAS014879: One or more services were unable to start due to one or more indirect dependencies not being available.” => {
“Services that were unable to start:” => [
“jboss.data-source.reference-factory.proj”,
“jboss.naming.context.java.jboss.datasources.proj”
],
“Services that may be the cause:” => [“jboss.jdbc-driver.mysql”]
} }

解决方法:

要解决Wildfly上的mysql数据源配置问题,我使用管理控制台添加数据源并对其进行测试.

>如果您登录到Web控制台并找到您尝试配置禁用的数据源
  删除它. standalone.xml和module.xml重置为原始.

Steps for accessing web console
>配置新数据源:

名称:mysql
JNDI:java:jboss / datasources / proj
>单击下一步并输入URL(我使用下面的内容)并单击“启用”,然后单击“测试”
url:jdbc:mysql:// localhost / proj
>测试应该显示成功
>将自动对standalone.xml和module.xml进行更改.
>如果现在重新启动服务器,它应该在没有任何错误的情况下启动,您应该能够从Web项目访问数据库

标签:wildfly-8,mysql
来源: https://codeday.me/bug/20190722/1506441.html