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