JBoss 版本:5.*
MySql 版本:5.*
MSSQL version:200*
第一步,去MySQL和MSSQL的官网下一个JDBC驱动(点这里下载)。然后把解压出来的文件mysql-connector-java-5.0.7- bin.jar and msbase.jar,mssqlserver.jar and msutil.jar拷贝到%JBoss%/server/default/lib里。最好再把CLASSPATH里加上mysql-connector- java-5.0.7-bin.jar 或则是MSSQL的路径。
第二步,拷贝MySQL:%JBoss%/docs/examples/jca/mysql-ds.xml or MSSQL:%JBoss%/docs/examples/jca/mssql-ds.xml 到%JBoss% /server/default/deploy文件夹里。然后修改一下几行:
MySQL:
<
jndi-name
>
MySqlDS
</
jndi-name
>
<!--
这里填你想要JNDI名字
-->
< connection-url > jdbc:mysql://localhost:3306/mysql </ connection-url > <!-- 这里我用mysql自带的数据库做测试 -->
< driver-class > com.mysql.jdbc.Driver </ driver-class > <!-- 这个不用改 -->
< user-name > root </ user-name > <!-- 这里填数据库的用户名 -->
< password > vincent </ password > <!-- 这里填数据库的密码 -->
< connection-url > jdbc:mysql://localhost:3306/mysql </ connection-url > <!-- 这里我用mysql自带的数据库做测试 -->
< driver-class > com.mysql.jdbc.Driver </ driver-class > <!-- 这个不用改 -->
< user-name > root </ user-name > <!-- 这里填数据库的用户名 -->
< password > vincent </ password > <!-- 这里填数据库的密码 -->
MSSQL:
第三步,修改%JBoss%/server/default/conf里的standardjbosscmp-jdbc.xml文件。这里和网 上其他教程不一样的是只用修改
<datasource>java:/MySqlDS</datasource> or
<datasource>java:/MSSQLDS</datasource> 就可以了。注意这 里的MySqlDS就是在第二步中mysql-ds.xml中配置的JNDI名字。那个<datasource-mapping>就不用改 了。
第四步,修改%JBoss%/server/default/conf里的login-config.xml文件。在文件的最后一句</policy>的前面加上如下代码:
MySQL:
<!--
MySQL Data-Source Settings
-->
< application-policy name = "MySqlDbRealm" >
< authentication >
< login-module code =
"org.jboss.resource.security.ConfiguredIdentityLoginModule"
flag = "required" >
< module-option name ="principal" > MySqlDS </ module-option >
< module-option name ="userName" > root </ module-option >
< module-option name ="password" > vincent </ module-option >
< module-option name ="managedConnectionFactoryName" >
jboss.jca:service=LocalTxCM,name=MySqlDS
</ module-option >
</ login-module >
</ authentication >
</ application-policy >
< application-policy name = "MySqlDbRealm" >
< authentication >
< login-module code =
"org.jboss.resource.security.ConfiguredIdentityLoginModule"
flag = "required" >
< module-option name ="principal" > MySqlDS </ module-option >
< module-option name ="userName" > root </ module-option >
< module-option name ="password" > vincent </ module-option >
< module-option name ="managedConnectionFactoryName" >
jboss.jca:service=LocalTxCM,name=MySqlDS
</ module-option >
</ login-module >
</ authentication >
</ application-policy >
MSSQL:
<!--
MSSQL Data-Source Settings
-->
< application-policy name = "MSSQLDbRealm" >
< authentication >
< login-module code =
"org.jboss.resource.security.ConfiguredIdentityLoginModule"
flag = "required" >
< module-option name ="principal" > MSSQLDS </ module-option >
< module-option name ="userName" > root </ module-option >
< module-option name ="password" > vincent </ module-option >
< module-option name ="managedConnectionFactoryName" >
jboss.jca:service=LocalTxCM,name=MSSQLDS
</ module-option >
</ login-module >
</ authentication >
</ application-policy >
< application-policy name = "MSSQLDbRealm" >
< authentication >
< login-module code =
"org.jboss.resource.security.ConfiguredIdentityLoginModule"
flag = "required" >
< module-option name ="principal" > MSSQLDS </ module-option >
< module-option name ="userName" > root </ module-option >
< module-option name ="password" > vincent </ module-option >
< module-option name ="managedConnectionFactoryName" >
jboss.jca:service=LocalTxCM,name=MSSQLDS
</ module-option >
</ login-module >
</ authentication >
</ application-policy >
编一个名为test.jsp的JSP文件进行测试:
MySQL:
<
%@ page
language
="java"
import
="java.util.*"
pageEncoding
="GB2312"
%
>
< %@ page import ="java.sql.*" % >
< %@ page import ="javax.sql.DataSource" % >
< %@ page import ="javax.naming.*" % >
< html >
< head >
< title > 测试JBoss/MySQL连接池 </ title >
</ head >
< body >
< %
out .print("测试JBoss/MySQL连接池<br /> ");
try{
InitialContext initCtx = new InitialContext();
DataSource ds = (DataSource)initCtx.lookup("java:/MySqlDS");//注意这里,如果你的JNDI名字和我的不一样,那这个"MySqlDS"要改!or JNDI=MSSQLDS
Connection conn = ds.getConnection();
out.print("MySQL connection pool runs perfectly!");
conn.close();
}
catch(Exception ex){
out.println("连接错误:");
out.print(ex.getMessage());
}
%>
</ body >
</ html >
< %@ page import ="java.sql.*" % >
< %@ page import ="javax.sql.DataSource" % >
< %@ page import ="javax.naming.*" % >
< html >
< head >
< title > 测试JBoss/MySQL连接池 </ title >
</ head >
< body >
< %
out .print("测试JBoss/MySQL连接池<br /> ");
try{
InitialContext initCtx = new InitialContext();
DataSource ds = (DataSource)initCtx.lookup("java:/MySqlDS");//注意这里,如果你的JNDI名字和我的不一样,那这个"MySqlDS"要改!or JNDI=MSSQLDS
Connection conn = ds.getConnection();
out.print("MySQL connection pool runs perfectly!");
conn.close();
}
catch(Exception ex){
out.println("连接错误:");
out.print(ex.getMessage());
}
%>
</ body >
</ html >