sql server+tomcat5.5连接池配置问题

指尖上的程序员 2008-09-24 09:19:25
大家好,我最近用tomcat连接池配置出现了一个问题,请大家帮忙解决:
谢谢
先说说我的配置:
C:\Tomcat\conf\Catalina\localhost中ROOT.xml中:

<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc//ROOT" type="javax.sql.DataSource"

driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver" maxIdle="2" maxWait="5000" validationQuery="select

1" username="数据库用户名" password="密码"

url="jdbc:microsoft:sqlserver://211.211.211.00;DatabaseName=数据库名" maxActive="4"/>
</Context>


C:\Tomcat\conf中server.xml(<Host></Host>)中:

<Resource name="jdbc//ROOT" type="javax.sql.DataSource"

driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver" maxIdle="2" maxWait="5000" validationQuery="select

1" username="数据库用户名" password="密码"

url="jdbc:microsoft:sqlserver://127.0.0.1;DatabaseName=数据库名" maxActive="4"/>



C:\www\196hotel.com\ROOT\WEB-INF中(我的工程放在其他的目录下的):

<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/ROOT</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>


我在工程中是这样调用的:



public static Connection getConnection() {
Connection con = null;
try {
Context initCtx = new InitialContext();
DataSource ds = (DataSource) initCtx.lookup(
"java:comp/env/jdbc/ROOT");
if (ds != null) {
System.out.println("获取成功DataSource"+ds);
con = ds.getConnection();
System.out.println(con+"=con");
}
return con;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}


我输出的结果总是:

获取成功DataSourceorg.apache.tomcat.dbcp.dbcp.BasicDataSource@d647d8
org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'

希望哪位高手指点一下,谢谢!!


...全文
294 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
chjx1982 2008-09-26
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 tiehou 的回复:]
谢谢,
我本来在本地测试是没有问题的,
但是本地和服务器不一样的是:

服务器工程不在tomcat的webapps目录中
而是重新建的C:\www\196hotel.com\ROOT目录
是不因为这个的原因,映射的路径是不要有什么改动

除了这个我真的找不出其他的原因了
[/Quote]
那你把项目放到webapps下面看看,如果可以,那就是映射的问题了。
  • 打赏
  • 举报
回复
是不是分太少了,没有人回答啊
yangxzh 2008-09-24
  • 打赏
  • 举报
回复
"获取成功DataSourceorg.apache.tomcat.dbcp.dbcp.BasicDataSource@d647d8"从这句来看DataSourde应该是取到了的;那多半是没有取到驱动,楼主先测试下在服务器上不用连接池可不可以连接到数据库.
tianqiao1689 2008-09-24
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 sunxing007 的回复:]
我不知道你的问题出在哪里, 因为我还没有在tomcat中配置过jndi, 不过今天试着做了一下,数据库是sqlserver2000,tomcat6.0, 还用到了spring容器, 步骤如下:
1 拷贝ms驱动包msbase.jar,mssqlserver.jar,msutil.jar到lib;
2 tomcat_home/conf/server.xml中配置resource:

XML code
<Context>
......
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" …
[/Quote]

不用,你只要依据上面讲的做就ok了
  • 打赏
  • 举报
回复
谢谢,
我本来在本地测试是没有问题的,
但是本地和服务器不一样的是:

服务器工程不在tomcat的webapps目录中
而是重新建的C:\www\196hotel.com\ROOT目录
是不因为这个的原因,映射的路径是不要有什么改动

除了这个我真的找不出其他的原因了
sunxing007 2008-09-24
  • 打赏
  • 举报
回复
我不知道你的问题出在哪里, 因为我还没有在tomcat中配置过jndi, 不过今天试着做了一下,数据库是sqlserver2000,tomcat6.0, 还用到了spring容器, 步骤如下:
1 拷贝ms驱动包msbase.jar,mssqlserver.jar,msutil.jar到lib;
2 tomcat_home/conf/server.xml中配置resource:

<Context>
......
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="sa" password="123456" driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=Book;SelectMethod=Cursor"/>
</Context>

3 在spring 的bean配置文件中配置一个dataSource, 这个dataSource将应用上面配置的jndi;

<bean id="jndiDataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>java:comp/env/jdbc/TestDB</value>
</property>
</bean>

4 用上面的dataSource bean代替以前的dataSource, 项目运行完全正常.

希望给你帮助.
yangxzh 2008-09-24
  • 打赏
  • 举报
回复
看来程序是肯定没有问题的.你看看服务器上的环境和你的一致不?
是不是服务器上没有将驱动加到classpath中?
这些东西很烦,一不小心就弄错;前一阵子配置tomcat6+mysql也搞得头大
  • 打赏
  • 举报
回复
我在本地测试是可以的,但是放到服务器上就不行了?
郁闷
yangxzh 2008-09-24
  • 打赏
  • 举报
回复
看看这个 http://topic.csdn.net/t/20050817/17/4214643.html
  • 打赏
  • 举报
回复
5.5用哪个版本的驱动最好??
哪个朋友知道??
yangxzh 2008-09-24
  • 打赏
  • 举报
回复
sql server不大会用,mysql中出现这个错误是驱动不正确引起的.
LZ看看是不是驱动的问题.
liaoyi_ipanel 2008-09-24
  • 打赏
  • 举报
回复
up
  • 打赏
  • 举报
回复
回10楼的朋友,不用连接池是完全没有问题的,因为我先前用的是其他的连接,这次我只是想更改下连接方式

会不会是路径的问题,望高手解答!!!
sebatinsky 2008-09-24
  • 打赏
  • 举报
回复
呵呵,学习了,本来上次项目也用到了连接池问题,呵呵,看来大家都说了,

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧