当前位置: 技术问答>java相关
高分求助,如何再tomcat下配置jndi连接数据库?
来源: 互联网 发布时间:2015-09-23
本文导语: 原来再resin2。1下使用jndi连接数据库,一切ok,现在把这些代码移到tomcat4。03下,就出错了,我觉得应该配置server.xml这个文件,使代码能够找到连接的地方,我的代码如下: try { javax.naming.Context ctx = ...
原来再resin2。1下使用jndi连接数据库,一切ok,现在把这些代码移到tomcat4。03下,就出错了,我觉得应该配置server.xml这个文件,使代码能够找到连接的地方,我的代码如下:
try {
javax.naming.Context ctx = new javax.naming.InitialContext();
ds = (DataSource)ctx.lookup("jdbc/engtrade");
conn = ds.getConnection();
System.out.println("connection database success!");
}catch(Exception e) {
e.printStackTrace();
}
再tomcat的server.xml里我是这样写的:
userEnTradeDBUserName
passwordEnTradeDBPassWord
driverClassName
org.hsql.jdbcDriver
driverName com.microsoft.jdbc.sqlserver.SQLServerDriver
urljdbc:microsoft:sqlserver://java:1433;DatabaseName=fcc_trade
但是怎么连接不上呢?错再哪里?
try {
javax.naming.Context ctx = new javax.naming.InitialContext();
ds = (DataSource)ctx.lookup("jdbc/engtrade");
conn = ds.getConnection();
System.out.println("connection database success!");
}catch(Exception e) {
e.printStackTrace();
}
再tomcat的server.xml里我是这样写的:
userEnTradeDBUserName
passwordEnTradeDBPassWord
driverClassName
org.hsql.jdbcDriver
driverName com.microsoft.jdbc.sqlserver.SQLServerDriver
urljdbc:microsoft:sqlserver://java:1433;DatabaseName=fcc_trade
但是怎么连接不上呢?错再哪里?
|
1:先改一改你的代码:
try {
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup ("java:/comp/env");
DataSource ds = (DataSource)envContext.lookup("jdbc/engtrade");
conn = ds.getConnection();
System.out.println("connection database success!");
}catch(Exception e) {
e.printStackTrace();
}
这段代码只是多加了两句。其中("java:/comp/env");是必须加上的。
在tomcat中,jndi的资源默认是在comp/env这个名字空间下的。
2:你的tomcat的server.xml文件也不正确。应这样改动。
找到之间的地方(千万不要改动之间的部分)加上:
url
jdbc:microsoft:sqlserver://weiwei:1433;DatabaseName=Test
validationQuery
select * from ad(必须是一条select语句,什么都可以)
maxIdle
2
maxActive
4
driverClassName
com.microsoft.jdbc.sqlserver.SQLServerDriver(随数据库不同而改变)
maxWait
5000
user(DB用户名)
sa
username(DB用户名)
sa
password
你的数据库密码
强烈建议改动前备份server.xml文件。否则可能会造成服务器不能启动!
我的e-mail是 buickwang555@msn.com欢迎与我联系!
try {
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup ("java:/comp/env");
DataSource ds = (DataSource)envContext.lookup("jdbc/engtrade");
conn = ds.getConnection();
System.out.println("connection database success!");
}catch(Exception e) {
e.printStackTrace();
}
这段代码只是多加了两句。其中("java:/comp/env");是必须加上的。
在tomcat中,jndi的资源默认是在comp/env这个名字空间下的。
2:你的tomcat的server.xml文件也不正确。应这样改动。
找到之间的地方(千万不要改动之间的部分)加上:
url
jdbc:microsoft:sqlserver://weiwei:1433;DatabaseName=Test
validationQuery
select * from ad(必须是一条select语句,什么都可以)
maxIdle
2
maxActive
4
driverClassName
com.microsoft.jdbc.sqlserver.SQLServerDriver(随数据库不同而改变)
maxWait
5000
user(DB用户名)
sa
username(DB用户名)
sa
password
你的数据库密码
强烈建议改动前备份server.xml文件。否则可能会造成服务器不能启动!
我的e-mail是 buickwang555@msn.com欢迎与我联系!