加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

2006-11-10 星期五

发布时间:2020-12-12 15:49:37 所属栏目:MsSql教程 来源:网络整理
导读:这几天一直在休息,老师出差了,昨天研究了在 tomcat 下配置 jndi ,发现在 tomcat5.0 和 5.5 下配置还有些不一样,老师是使用得 5.0 ,按照老师那样配在 5.5 下就是不行,把下面这段 xml 放在 tomcat 的 server.xml 中的 标签里面 ? ?path=" ? ? ?name="jdb

这几天一直在休息,老师出差了,昨天研究了在tomcat下配置jndi,发现在tomcat5.05.5下配置还有些不一样,老师是使用得5.0,按照老师那样配在5.5下就是不行,把下面这段xml放在tomcatserver.xml中的 标签里面

? ?path=">

?

? ?name="jdbc>

?

factory ?

org.apache.commons.dbcp.BasicDataSourceFactory ?

?

driverClassName ?

com.microsoft.jdbc.sqlserver.SQLServerDriver ?

?

url ?

jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=book ?

?

username ?

sa

?

password

?

?

maxActive

20

?

maxIdle

10

?

maxWait

-1

?

removeAbandoned

true

removeAbandonedTimeout

60

logAbandoned

false

?

如果是在5.0下就没有问题,测试通过,而在5.5下面这样写就有错误了,到网上搜了些资料,说它们两个配置还是有些不一样的

tomcat5.5conf/Catalina/localhost目录下新建一个针对自己项目的xml文件

? ?path=">

auth="Container"

name="jdbc/address"

type="javax.sql.DataSource"

password=""

driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"

maxIdle="10"

maxWait="100000"

username="sa"

url="jdbc:microsoft:sqlserver://localhost:1433;databasename=addressbooksample"

maxActive="20"/>

文件名叫addressbook.xml这里的文件名是随便起的,在tomcat启动的时候会自动加载这个目录下的所有xml文件,OK?这样就调试通过了,而且看起来这样配置要比在5.0下配置简单。

还有一个方法

就是把sql的配置资源

auth="Container"

name="jdbc/address"

type="javax.sql.DataSource"

password=""

driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"

maxIdle="10"

maxWait="100000"

username="sa"

url="jdbc:microsoft:sqlserver://localhost:1433;databasename=addressbooksample"

maxActive="20"/>

放入conf文件夹下的Context.xml中的 标签内,就可以了

再有就是在java代码中取得Connection的时候就不能像原来这样写了

Context?initContext?=?new?InitialContext();

Context?envContext?=?(Context)initContext.lookup("java:comp/env");

DataSource?ds?=?(DataSource)envContext.lookup("jdbc/addressbook");

conn?=?ds.getConnection();

这样写我试过也不行,tomcat会有异常

这样写就没错

Context?initContext?=?new?InitialContext();

DataSource?ds?=?(DataSource)initContext.lookup("java:comp/env/jdbc/address");

conn?=?ds.getConnection();

经过一番研究试验,终于搞定了,但是其中玄机还不知是为何

像这个东西"java:comp/env"是啥意思(JNDI查找的Tomcat的默认名字

Oh.god,我弄错了

Context?initContext?=?new?InitialContext();

Context?envContext?=?(Context)initContext.lookup("java:comp/env");

DataSource?ds?=?(DataSource)envContext.lookup("jdbc/address");

conn?=?ds.getConnection();

和这样写

Context?initContext?=?new?InitialContext();

DataSource?ds?=?(DataSource)initContext.lookup("java:comp/env/jdbc/address");

conn?=?ds.getConnection();

都没错,都能出来数据

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读