求助在JBoss中配置MSSql Server DataSource的问题

2025-03-22 23:36:13
推荐回答(1个)
回答1:

创建组件(module)
1、建立目录
如果使用以前的JBoss版本,我们只需要简单地将JDBC的jar放到lib目录下就可以使用了,但是最新版的JBoss7.1,由于引入了组件(module)的概念之后,以前的这种方法就行不通了。为了引入JDBC,我们需要建立如下的目录结构:

$JBOSS_HOME\modules\com\microsoft\sqlserver\jdbc\main
建立目录之后,再将sqljdbc4.jar复制到main目录下面。
第一次看到JBoss的这种目录结构时,发现它跟Maven的类仓库目录结构很相似,都是组织得相当之好。不会象以前那样,将一大堆的jar放到一个目录中,令人看起来觉得相当之混乱。

2、建立module.xml
将jar放到指定的目录之后,还未结束,你还需要建立一个名为module.xml的文件,文件的内容如下所示:





















3、注册DataSource
配置的最后一步,就是要修改$JBOSS_HOME\standalone\configuration\standalone.xml文件,在datasources节点增加如下的内容:



jdbc:sqlserver://SqlServer:1433;DatabaseName=test

mssqlxa



sa

sa









com.microsoft.sqlserver.jdbc.SQLServerXADataSource





4、启动JBoss
当完成以上的配置后,你就可以尝试启动服务器,如果在log中没有出现什么错误信息,那你基本已经成功配置了MSSQL的DataSource。

5、使用DataSource
定义了DataSource之后,我们尝试在JSP页面中调用它,测试配置是否真正正确。
下面有一段很简单的JSP代码:

<%@page contentType="text/html; charset=utf-8"%>

<%@ page import="java.sql.*,

javax.naming.*,

javax.sql.*

"%>

<%

Context ct = new InitialContext();

DataSource ds = (DataSource)ct.lookup("java:jboss/datasources/mssql");

Connection con=ds.getConnection();

Statement sm=con.createStatement();

ResultSet rs=sm.executeQuery("select * from User where UserID = '1'");

while(rs.next())

{

Stringtitle=rs.getString("title");

out.println(title +"
");

}

rs.close();

sm.close();

con.close();

%>







Example





Hello





将上面的代码保存为一个JSP文件,例如ds.jsp,然后把它放到war中就可以做测试了。
这个JSP文件的逻辑很简单,首先它会调用上面所定义的DataSource,然后查询数据库中的User表,最后在页面中显示查询的结果。如果你的配置没问题,你会在浏览器中看到显示的结果(要保证数据库中有User表,而且表中有UserID为1的记录)。

总结
在JBoss7中配置MSSQL的DataSource,过程并不是太复杂。如果你以前使用过旧版本的JBoss,只需要转变一下使用习惯,配置过程就会变得很easy啦