JBOSS 6及以上使用

数据源配置

导入驱动文件到Modules

拷贝驱动文件

%JBOSS_HOME%\modules\system\layers\base\com 目录下新建驱动商的目录,并建立对应的数据库服务器的驱动存放目录,例如SQL Server: %JBOSS_HOME%\modules\system\layers\base\com\microsoft\sqlserver\jdbc\main 将驱动的jar文件放到该目录;

设置为Module

在该目录新增一个module.xml文件,文件内容:

<?xml version="1.0" encoding="UTF-8"?>

<!--
  ~ JBoss, Home of Professional Open Source.
  ~ Copyright 2010, Red Hat, Inc., and individual contributors
  ~ as indicated by the @author tags. See the copyright.txt file in the
  ~ distribution for a full listing of individual contributors.
  ~
  ~ This is free software; you can redistribute it and/or modify it
  ~ under the terms of the GNU Lesser General Public License as
  ~ published by the Free Software Foundation; either version 2.1 of
  ~ the License, or (at your option) any later version.
  ~
  ~ This software is distributed in the hope that it will be useful,
  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of
  ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  ~ Lesser General Public License for more details.
  ~
  ~ You should have received a copy of the GNU Lesser General Public
  ~ License along with this software; if not, write to the Free
  ~ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  ~ 02110-1301 USA, or see the FSF site: http://www.fsf.org.
  -->

<module xmlns="urn:jboss:module:1.1" name="com.microsoft.sqlserver.jdbc">

    <resources>
        <resource-root path="sqljdbc4.jar"/>
        <!-- Insert resources here -->
    </resources>
    <dependencies>
        <module name="javax.api"/>
        <module name="javax.transaction.api"/>
        <module name="javax.servlet.api" optional="true"/>
    </dependencies>
</module>

其中 <module>指明这个模块的名称com.oracle供其他模块设置依赖,name值等于当前目录%JBOSS_HOME%\modules\system\layers\base\com\microsoft\sqlserver\jdbc\main中``%JBOSS_HOME%\modules\system\layers\base`之后的部分,不包含main。; <resource>指明模块的资源名称,资源要与module.xml在同一个文件夹下; <resource-root path="sqljdbc4.jar"/> 就是拷贝的驱动jar的名称。 <dependencies>指明该模块所依赖的模块,如module.xml中指明的两个模块也是像构建Oracle数据源模块一样实现的,它们可以%JBOSS_HOME%\modules下找到:

为JBOSS容器加载驱动模块

由于数据源属于容器的子系统,所以在profile中<subsystem xmlns="urn:jboss:domain:datasources:5.0">子标签下加载

        <subsystem xmlns="urn:jboss:domain:datasources:5.0">
	        <datasources>
	            <drivers>
	                <driver name="sqlserver" module="com.microsoft.sqlserver.jdbc">
						<driver-class>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver-class>
						<xa-datasource-class>com.microsoft.sqlserver.jdbc.SQLServerDriver</xa-datasource-class>
					</driver>
	            </drivers>
            </datasources>
        </subsystem>    

添加数据源

通过控制台配置

登录管理员控制台,进入数据源添加页面(前提是驱动加载好了),页面如下: Alt text

输入数据源名称和JNDI名称。 Alt text

选择数据库驱动 Alt text 输入连接信息 Alt text 测试连接 Alt text

手动配置

修改standalone.xml

standalone.xml文件中的数据源配置项中增加的数据源的配置

        <subsystem xmlns="urn:jboss:domain:datasources:1.2">
            <datasources>
                <datasource jta="true" jndi-name="java:jboss/jdbc/xxx" pool-name="xxxx" enabled="true" use-java-context="true">
                    <connection-url>xxxxx</connection-url>
                    <driver>sqlserver</driver>
                    <security>
                        <user-name>user</user-name>
                        <password>password</password>
                    </security>
                </datasource>
            </datasources>
        </subsystem>

让Context Root 和War包不一致。

在WEB-INF下增加jboss-web.xml文件,文件内容为:

<jboss-web>
    <context-root>/test</context-root>
</jboss-web>

启用应用本身的日志处理

JBoss EAP 有自己的日志处理,默认所有的应用的日志都有JBOSS自己控制,如果想每个应用独立的控制日志输出,则需要关闭JBOSS的日志控制。设置如下:

在启动参数中增加: -Dorg.jboss.as.logging.per-deployment=false

参考:

JBOSS EAP 6 系列三 Oracle、Mysql数据源的配置(驱动)—认识模块的使用 - 李社河