jBoss8和以后的高版本都更名叫做wildFly了,但是网上的中文资料基本还都停留在jBoss4和5的版本上,可能是因为EJB在中国已经好久没用回归开发主流了,jBoss不同版本之间的差别还是挺大的,我下载的是比较新的一个版本WildFly10.0.0,界面和以前的jBoss相差还是挺大的,我找了一些英文资料折腾了好久才配置成功,记录下来供大家参考.
参考资料
[1]Advanced Java EE Development with WildFly
为WildFly配置mysql数据源
此处使用的mysql为5.6.29
使用的jar包为mysql-connector-java-5.1.13-bin.jar
,笔者经过测试该jar包可以与该mysql版本配套使用,如果是其他版本的mysql,请自行去官网寻找对应的jar包
按照以下步骤:
第一步:为WildFly添加连接mysql用的jar包依赖:
进入目录%JBOSS_HOME%/modules/mysql/main
,该路径中的mysql与main文件夹需要自己创建,之后将mysql-connector-java-5.1.13-bin.jar
放入该文件夹,然后再在该目录下创建文件module.xml
,并将一下代码贴进去:
<module xmlns="urn:jboss:module:1.1" name="mysql" slot="main">
<resources>
<resource-root path="mysql-connector-java-5.1.13-bin.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
</dependencies>
</module>
如果使用的是其他版本的jar的话,请自行修改resource-root标签的path属性为对应版本的jar包的文件名。
第二步:配置数据源与驱动:
打开文件%JBOSS_HOME%/standalone/configuration/standalone.xml,全文搜索”datasource”,可以找到如下标签:
默认的数据源是h2,我们将这个标签修改成如下:
<subsystem xmlns="urn:jboss:domain:datasources:4.0">
<datasources>
<datasource jndi-name="java:jboss/datasources/MySQLDS" pool-name="MySQLDS" enabled="true" use-java-context="true">
<connection-url>jdbc:mysql://localhost:3306/test?characterEncoding=utf-8</connection-url>
<driver>mysql</driver>
<pool>
<min-pool-size>10</min-pool-size>
<max-pool-size>20</max-pool-size>
<prefill>true</prefill>
</pool>
<security>
<user-name>root</user-name>
<password>12346</password>
</security>
</datasource>
<drivers>
<driver name="mysql" module="mysql">
<driver-class>com.mysql.jdbc.Driver</driver-class>
<xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class>
</driver>
</drivers>
</datasources>
</subsystem>
<connection-url>
标签中的url中的test记得改成你想要连接的数据库的名称,<username>
与 <password>
标签也要记得改成自己的数据库账户的用户名与密码
第三步:更改EE子系统的数据源:
刚刚把默认的数据源ExampleDS给删了,但是有的地方还有对它的引用,所以这个时候使用服务器运行使用了JPA的程序时还是会报错,使用%JBOSS_HOME%/bin/standalone.bat启动服务器之后,通过localhost:9990访问控制台,按一下的顺序点击:
Configuration->Subsystem->EE->View->Default Bindings,然后你会看到这里还有一个对ExampleDS的引用,点击Edit,将Datasource改成java:jboss/datasources/MySQLDS,图片说明如下:
根据参考资料[1]给的配置过程,配置到第二步就结束了,但是根据笔者的测试,如果仅仅配置到这里的话,运行带有JPA的项目时会报如下错误:
需要通过第三步消除ExampleDS的引用才可以,参考资料毕竟是基于WildFly8的,有可能8中没有这个引用,这个笔者没有亲自去验证过