使用JNDI查找JBOSS内配置好的数据源遇到的问题

本文指导如何在JBoss环境中配置MySQL JDBC驱动,包括下载、解压、放置JAR文件,修改配置文件以及测试连接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转载自 http://www.24xuexi.com/w/2011-06-03/91169.html

JBoss 版本:Jboss-4.0.5.GA

MySql 版本:Mysql-5.0.44

第一步,去MySQL的官网下一个JDBC驱动(点这里下载)然后把解压出来的文件mysql-connector-java-5.0.8-bin.jar拷贝到JBOSS_HOME/server/all/lib里。最好再把CLASSPATH里加上mysql-connector-java-5.0.8-bin.jar的路径。

第二步,拷贝JBOSS_HOME/docs/examples/jca/mysql-ds.xml 到JBOSS_HOME /server/all/deploy文件夹里。然后修改一下几行:

????????<jndi-name>MySqlDS</jndi-name><!--这里填你想要JNDI名字-->

???????? <connection-url>jdbc:mysql://localhost:3306/test</connection-url><!--这里我用mysql自带的数据库做测试-->

???????? <driver-class>com.mysql.jdbc.Driver</driver-class>?????????????? <!--这个不用改-->

????????<user-name>root</user-name>?????????????<!--这里填数据库的用户名-->

???????? <password>123456</password>?????????<!--这里填数据库的密码-->

第三步,修改JBOSS_HOME/server/all/conf里的standardjbosscmp-jdbc.xml文件。这里和网上其他教程不一样的是只用修改<datasource>java:/MySqlDS</datasource>就可以了。注意这里的MySqlDS就是在第二步中mysql-ds.xml中配置的JNDI名字。那个<datasource-mapping>就不用改了。

第四步,修改JBOSS_HOME/server/all/conf里的login-config.xml文件。在文件的最后一句</policy>的前面加上一下代码:

????<!--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">123456</module-option>

???????????????? <module-option name ="managedConnectionFactoryName">

???????????????? jboss.jca:service=LocalTxCM,name=MySqlDS

???????????????? </module-option>

???????????????? </login-module>

???????????????? </authentication>

???????? </application-policy>

编一个名为index.jsp的JSP文件进行测试:

<%@ 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"要改!

???? Connection conn = ds.getConnection();

???? out.print("MySQL connection pool runs perfectly!");

???? conn.close();

???? }

???? catch(Exception ex){

???? out.println("连接错误:");

???? out.print(ex.getMessage());

???? }

???? %>

</body>

</html>

启动JBOSS: nohup ./run.sh -c all>nohup.out &

将此脚本放在JBOSS_HOME/server/all/deploy/ROOT.war下,然后通过WEB访问:http://localhost:8080,配置正确,如下显示:

测试JBoss/MySQL连接池

MySQL connection pool runs perfectly!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值