Yovi's Blog - JNDI
type: channel
link: https://www.yovisun.com/tag/JNDI/
items: 在Tomcat和WebSphere中配置JNDI数据库连接

在Tomcat和WebSphere中配置JNDI数据库连接
type: item
date: 2013-05-16T11:25:00+08:00
description: 先吐槽一下，又是一个让人郁闷的事情，互联网上的信息让人眼花缭乱，一些不负责任的人总会把一些信息、文字复制来复制去，完全不经过思考，不去实践验证信息的真伪，导致一些错误的信息被广泛传开，让真正需要这些信息的人却只能被这些错误的东西误导，以至于浪费大量的时间。 所以强烈呼吁，请尊重原创，尊重知识，尊重他人，不要随便轻易的复制别人的原创文章。 OK，这次遇到一个关于数据库JNDI在Tomcat和WebSphere中配置的问题。两者的配置是不同的，而网上大量的资料都没有说出两者的不同，不进行强调，直接等同处理，将错误的配置放出来了，误导他人。 众所周知，数据库连接过程中通过JNDI的方式在安全性和效率上都有着一定优势，我的这个项目就是用JNDI进行数据库连接的。在WebSphere环境中完全可以运行，但是放到Tomcat上轻量级调试的时候，数据库连接总是错误。后来，多方验证才知道原来JNDI连接字符串在Tomcat和WebSphere中是不一样的，而网上搜索所得到的信息是两者的连接字符串都是一致的，所以耽误了我大量的时间。 下面说说JNDI数据库连接字符串在Tomcat和WebSphere中配置的不同，以及tomcat中JNDI的配置。数据库使用的是Oracle。 在Tomcat的目录中找到conf/context.xml文件，加上如下代码： <Resource name="jdbc/bbs" auth="Container" type="javax.sql.DataSource" username="yovisun" password="12345" driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@127.0.0.1:1521:xe" maxActive="100" maxIdle="30" maxWait="10000"/> 具体参数根据情况调整，这里配置JNDI时使用的字符串为jdbc/bbs。而在Tomcat运行环境下，程序实际使用的JNDI连接字符串为java:/comp/env/jdbc/bbs。 注意，对于tomcat而言必须在前面加上java:/comp/env/，websphere则不需要，直接是jdbc/bbs即可。 对于我的项目，再修改src/conf/datasource/dataSource.xml为以下内容即可： <?xml version="1.0" encoding="UTF-8"?> JNDI的名称，即jdbc/bbs，可以根据情况调整，切记对于tomcat，在运行的时候，使用的JNDI名称前面必须加上java:/comp/env/，网上搜索的很多文章没有说明这一点。 希望看到这篇文章的人对你有用。