在Tomcat和WebSphere中配置JNDI数据库连接

先吐槽一下,又是一个让人郁闷的事情,互联网上的信息让人眼花缭乱,一些不负责任的人总会把一些信息、文字复制来复制去,完全不经过思考,不去实践验证信息的真伪,导致一些错误的信息被广泛传开,让真正需要这些信息的人却只能被这些错误的东西误导,以至于浪费大量的时间。

所以强烈呼吁,请尊重原创,尊重知识,尊重他人,不要随便轻易的复制别人的原创文章。

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"  <!-- JNDI字符串-->  
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"?>  
<dataSources>  
    <dataSource dsName="project" dsTitle="" isJndi="true" jndi="java:/comp/env/jdbc/bbs" isEnabled="true" isDrm="false">  
    </dataSource>  
</dataSources>  

JNDI的名称,即jdbc/bbs,可以根据情况调整,切记对于tomcat,在运行的时候,使用的JNDI名称前面必须加上java:/comp/env/,网上搜索的很多文章没有说明这一点。

希望看到这篇文章的人对你有用。

/usr/themes/NexTSun/static/images/yovisun-weixin-share.jpg
赞 (6) 分享
声明:原创文章,欢迎转载,请以 超链接 的形式注明 作者标题原始出处查看许可协议
标题在Tomcat和WebSphere中配置JNDI数据库连接 | 作者:YoviSun
地址https://www.yovisun.com/archive/tomcat-websphere-jndi.html
相关文章:
已有 2 条评论
  1. 啄木游弋 啄木游弋

    博士哥,这文章对我没用,但是通过第一段,我觉得你身上那种严谨的态度对我很有用哎。

    1. YoviSun YoviSun

      不敢不敢。。你身上有更多的东西值我的去学习。

添加新评论
选择表情
手机扫描二维码访问