连接池配置问题

骑牛上铂金 2009-08-09 04:36:36
环境
XP+TOMCAT6+JDK1.6+mssql2000 sp4+jdbc sp3

想配置下个连接池
如果配置META-INF\context.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource
name="jdbc/mingri"
type="javax.sql.DataSource"
auth="Container"
driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
url="jdbc:microsoft:sqlserver://169.0.0.99:1433;DatabaseName=db_shopping"
username="sa"
password="111"
maxActive="10"
maxIdle="2"
maxWait="6000" />
</Context>


测试文件test.jsp
<%@   page   contentType="text/html;charset=gb2312"%> 
<%@ page import="java.sql.*"%>
<%@ page import="javax.sql.*"%>
<%@ page import="javax.naming.*"%>
<%@ page import="java.util.*,java.lang.*"%>
<HTML>
<HEAD>
<TITLE>JSP测试页面</TITLE>
</HEAD>
<BODY>
<%out.println("<h1>Hello,test JNDI ! </h1>");%>
<%
Context ctx=new InitialContext();
Context envctx=(Context) ctx.lookup("java:comp/env") ;
DataSource ds=(DataSource) envctx.lookup("jdbc/mingri");
Connection con=ds.getConnection(); //有时这句还报错误,但我没发现错误呀
Statement st=con.createStatement();
String sql="select * from tb_brand";
ResultSet rs=st.executeQuery(sql);
while(rs.next()) {%>
您的第一个字段内容为:<%=rs.getString(1)%>
您的第二个字段内容为:<%=rs.getString(2)%>
<%}
out.print("使用jdbc驱动操作数据库操作成功,恭喜你");
rs.close();
st.close();
con.close();
%>
</BODY>
</HTML>

运行时总提示java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]用户 'sa' 登录失败。

郁闷了N久,不用连接池,直接在jsp文件中连接数据库能正常显示数据库内容。

为此我随意修改URL中的ip地址,运行一下还是这个错误 ,由此 可以判断根本不是Sa密码的问题,请大侠们帮忙看看,不甚感激!

另外 我还想请问 一下在META-INF\context.xml文件中配置连接池,还要不要在web.xml中增加<resource-ref> ...</resource-ref>




...全文
176 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
islandrabbit 2009-08-09
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 islandrabbit 的回复:]
引用 15 楼 n29882942 的回复:
找到原因了,

我在context.xml中修改了密码,但C:\Web\Tomcat6\conf\Catalina\localhost下对应的XML文件没有自动更新!!
所以总是提示密码错误!

有什么办法 让这个文件自动更新呢?


<Context path="/mybookstore2" docBase="mybookstore2"
        debug="5" reloadable="true" crossContext="true">
[/Quote]

设成 reloadable="true" 就可以了。
islandrabbit 2009-08-09
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 n29882942 的回复:]
找到原因了,

我在context.xml中修改了密码,但C:\Web\Tomcat6\conf\Catalina\localhost下对应的XML文件没有自动更新!!
所以总是提示密码错误!

有什么办法 让这个文件自动更新呢?
[/Quote]

<Context path="/mybookstore2" docBase="mybookstore2"
debug="5" reloadable="true" crossContext="true">
islandrabbit 2009-08-09
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 jianchencool 的回复:]
JAR包 要拷贝到 <%=Tomcat安装路径 %>\common\lib\  和  工程\WEB-INF\lib\下 
[/Quote]
Tomcat6好像没有<%=Tomcat安装路径 %>\common\lib\,只有<%=Tomcat安装路径 %>\lib\。我只是把mysql-connector-java-5.1.7-bin.jar考到了<%=Tomcat安装路径 %>\lib\下,就可以了。
骑牛上铂金 2009-08-09
  • 打赏
  • 举报
回复
找到原因了,

我在context.xml中修改了密码,但C:\Web\Tomcat6\conf\Catalina\localhost下对应的XML文件没有自动更新!!
所以总是提示密码错误!

有什么办法 让这个文件自动更新呢?
xiaozejun 2009-08-09
  • 打赏
  • 举报
回复
同意7楼8楼的意见 把他们两个的意见合成起来就可以了
楼主不妨试一下
骑牛上铂金 2009-08-09
  • 打赏
  • 举报
回复
我把
name="jdbc/mingri" 改为name='mingri'
并更新相关文件后报错Cannot create JDBC driver of class '' for connect URL 'null'

真是个难搞的问题?
islandrabbit 2009-08-09
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 closewbq 的回复:]
jdbc/mingri中的mingri是不是应该和数据库的名字相同?
[/Quote]

不需要
closewbq 2009-08-09
  • 打赏
  • 举报
回复
jdbc/mingri中的mingri是不是应该和数据库的名字相同?
骑牛上铂金 2009-08-09
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 shengli_liao 的回复:]
都是用的自制的连接池
[/Quote]

不明白!

[Quote=引用 7 楼 jianchencool 的回复:]
JAR包 要拷贝到 <%=Tomcat安装路径 %>\common\lib\ 和 工程\WEB-INF\lib\下
[/Quote]

已经复制过了,不是这个问题!
骑牛上铂金 2009-08-09
  • 打赏
  • 举报
回复
加上了也是不行,依旧!
islandrabbit 2009-08-09
  • 打赏
  • 举报
回复
另外 我还想请问 一下在META-INF\context.xml文件中配置连接池,还要不要在web.xml中增加 <resource-ref> ... </resource-ref>

确实要在你的项目的web.xml中增加 <resource-ref> ... </resource-ref>,根据楼主的context.xml:

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

我想这样应该没问题了。
jianchencool 2009-08-09
  • 打赏
  • 举报
回复
JAR包 要拷贝到<%=Tomcat安装路径 %>\common\lib\ 和 工程\WEB-INF\lib\下
luckyllp 2009-08-09
  • 打赏
  • 举报
回复
每天回帖即可获得10分可用分!
shengli_liao 2009-08-09
  • 打赏
  • 举报
回复
都是用的自制的连接池
islandrabbit 2009-08-09
  • 打赏
  • 举报
回复
mark
骑牛上铂金 2009-08-09
  • 打赏
  • 举报
回复
密码是绝对没问题!不用连接池是可以连接的!
sahala3293 2009-08-09
  • 打赏
  • 举报
回复
还有登录失看你的sa用户的密码对不对
sahala3293 2009-08-09
  • 打赏
  • 举报
回复
碰到过这个问题,但是不知道和楼主是不是一样.
可以在企业管理器->安全性->登录->双击sa出来一框,把那数据库改成你的数据库db_shopping试试.它默认的master
我碰到的时候把这个改下就可以了。也不知道为什么..

81,092

社区成员

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

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