不同版本的JBoss的文件目录不同。在jboss-4.2.2.GA中的目录结构就和jboss3有很大的不同了。
现在我来讲解如何配置Jboss3的mysql数据库连接池。
我的环境是
JBoss3.2.5
mysql 5.0
mysql-connector-java-5.0.0-beta-bin.jar
首先把docs/examples/jca下的mysql-ds.xml 拷贝到server/default/deploy下。
然后做如下配置
<datasources>
<local-tx-datasource>
<jndi-name>MySqlDS</jndi-name>
<connection-url>jdbc:mysql://localhost:3306/mysql</connection-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<user-name>root</user-name>
<password>password</password>
</local-tx-datasource>
</datasources>
第二步:
到server/default/conf目录下standardjaws.xml修改如下
<jaws>
<datasource>java:/MySqlDS</datasource>
<type-mapping>mySql</type-mapping>
……
</jaws>
第三步:
到server/default/conf目录下standardjbosscmp-jdbc.xml 或者3.x系列的其他版本叫做jbosscmp-jdbc.xml
<jbosscmp-jdbc>
<defaults>
<datasource>java:/MySqlDS</datasource>
<datasource-mapping>mySql</datasource-mapping>
</defaults>
</jbosscmp-jdbc>
第四步:
修改server/default/conf目录下的login-config.xml
在最后的</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">password</module-option>
<module-option name = "managedConnectionFactoryName">jboss.jca:service=LocalTxCM,name=MySqlDS</module-option>
</login-module>
</authentication>
</application-policy>
到上面位置mysql数据是配置好了。现在我们要测试下
第五步:
新建一个web工程。例如 mysqljboss
创建一个test.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ page import="java.sql.*" %>
<%@ page import="javax.sql.*" %>
<%@ page import="javax.naming.*" %>
<%@ page session="false" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>test mysql datasource</title>
</head>
<body>
<%
out.println("My test begin");
DataSource ds=null;
try{
InitialContext ctx=new InitialContext();
ds=(DataSource)ctx.lookup("java:/MySqlDS");
Connection conn=ds.getConnection();
Statement stmt=conn.createStatement();
String strSql="select * from customers_10";//自己mysql中的表
ResultSet rs=stmt.executeQuery(strSql);
while(rs.next()){
out.println(rs.getString(1)+" "+rs.getString(2));
out.println("/n");
}
out.print("my test end");
}catch(Exception e){
e.printStackTrace();
}
%>
</body>
</html>
部署到jboss上。
jboss是以一个.war结尾的文件夹来部署的。比如mysqljboss.war文件夹放到server/default/deploy。可以通过eclipse里的控件直接部署 或是ant来部署。