Jee - JBoss AS7 JNDI Datasource - JBoss JNDI 数据源配置(MySQL配置)

JBoss AS7 JNDI Datasource - JBoss JNDI 数据源配置(MySQL配置)
Scene:
在 JBoss 服务器上配置 JNDI 的 MySQL 数据源。

Solution:
JBoss AS 7 版本和之前的版本在类装载上采取了不同的方案。AS 7 的类装载建立在  JBoss Modules 工程基础上。AS 7 中的模块必须明确地指明其依赖的包,定义在相应的 modules/ .. / .. / ... /main 目录下的 module.xml 中。
eg. ($jboss\modules\com\h2database\h2\main\module.xml)
Jee - JBoss AS7 JNDI Datasource - JBoss JNDI 数据源配置(MySQL配置)_第1张图片
 
AS 7 中的部署也是模块化的,不要尝试去访问 jar 包中的类,除非你为它定义了明确的包依赖。
当然有些模块是 JBoss 会自动添加的,这些隐式的依赖有:( https://docs.jboss.org/author/display/AS7/Implicit+module+dependencies+for+deployments)

具体的做法(以 linux 命令的思维来理解下面的提示):
mkdir -p $jboss/modules/com/mysql/main/
cd $jboss/modules/com/mysql/main/
cp $(mysql的那个jar包) .
vim module.xml

内容:
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.0" name="com.mysql">
	<resources>
		<resource-root path="mysql-connector-java-5.1.20-bin.jar" />
	</resources>
	<dependencies>
		<module name="javax.api" />
	</dependencies>
</module>

紧接着修改 standalone.xml (在 $jboss/standalone/configuration 目录下)
内容:
在 <datasources> 节点下面添加子节点
<datasource jndi-name="java:/mysql-test" pool-name="mysql-test-pool" enabled="true" use-java-context="true">
    <connection-url>jdbc:mysql://localhost:3306/test</connection-url>
    <driver-class>com.mysql.jdbc.Driver</driver-class>
    <driver>mysql</driver>
    <security>
        <user-name>root</user-name>
        <password>tsm;jd</password>
    </security>
</datasource>
在 <drivers> 节点下面添加子节点
<driver name="mysql" module="com.mysql"/>

Reference:
How do I migrate my application from AS5 or AS6 to AS7
Class Loading in AS 7
https://zorq.net/b/2011/07/12/adding-a-mysql-datasource-to-jboss-as-7/

你可能感兴趣的:(mysql,javaee,jboss,JNDI,数据源配置,as7)