首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • tomcat连接池和webapps 问题,急! [已结贴,结贴人:jiangeb]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-23 17:49:30 楼主
    我的环境是eclipse3.3\tomcat5.5\jdk5.5\win2003.程序是通过数据库连接池的方式与sqlserver2000建立连接。以前建立的项目没有问题。现在建立的项目有两个问题

    1、在eclipse里建立的tomcat项目,不用放在tomcat下的webapps下就可以直接访问,现在的非要放到那个目录下才行。不知道是怎么回事?

    2、连接池失效。运行程序提示conn链接为空。

    对照了新旧两个项目,好像其他配置都一样,但是新项目的WEB-INF下缺少一个web。xml。请问各位,是这个问题吗? 另外,这个web。xml是怎么产生的?我看旧项目里的都是一些servlet配置,但是新项目里还不需要servlet。

    请大家帮忙看看? 当然也可能不是web。xml文件的问题。有点着急,都三天了!!谢谢
    80  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-23 17:49:321楼 得分:0
    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【jiangeb】截止到2008-06-23 17:49:20的历史汇总数据(不包括此帖):
    发帖数:37                发帖分:1128             
    结贴数:36                结贴分:1090             
    未结数:1                  未结分:38               
    结贴率:97.30 %            结分率:96.63 %           
    值得尊敬
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • interpb
    • 等级:
    发表于:2008-06-23 17:55:532楼 得分:0
    JSP的项目 都要有 web。xml 配置文件

    你的怎么会没有呢

    连接池的引用 就有可能在web.xml里面定义

    把web.xml拷过来试试
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-23 18:35:593楼 得分:0
    你先把web.xml恢复了试试看吧
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • Landor2004
    • 等级:
    发表于:2008-06-23 20:14:024楼 得分:0
    web.xml是web应用程序的入库,你是不是项目建错了,你建立的不是web工程吧
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-23 20:24:075楼 得分:0
    你看哈你的连接池的连接那个地方是不是写错了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-23 20:53:056楼 得分:0
    web.xml是每个web工程必须要有的文件,少了它当然就不能运行了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-23 21:13:177楼 得分:30
    我 好像同你遇到过同样的问题 http://blog.csdn.net/caoyinghui1986/archive/2008/06/06/2516877.aspx

    注意 blog 中 的
    如果你吧你的项目部署到tomcate还是不能获得连接。 这是你要在 C:\Tomcat 5.5\conf\Catalina\localhost 下新建一个xml 文件 (tomcatePool.xml)
    这句 。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-23 21:19:218楼 得分:0
    JSP的项目 都要有 web。xml 配置文件

    你的怎么会没有呢

    连接池的引用 就有可能在web.xml里面定义

    把web.xml拷过来试试
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-23 21:22:349楼 得分:20
    1、在eclipse里建立的tomcat项目,不用放在tomcat下的webapps下就可以直接访问,现在的非要放到那个目录下才行。不知道是怎么回事?
    他在server.xml做过映射,虚拟路径。新的tomcat没有。

    2、连接池失效。运行程序提示conn链接为空。
    新的tomcat需要重新配置datasource
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ilrxx
    • 等级:
    发表于:2008-06-23 23:50:0510楼 得分:0
    2、连接池失效。运行程序提示conn链接为空。
    你肯定是用完了ResultSet,Statement,Connection没有close,这样资源耗尽,可用连接为0就报错了..

    第一个问题:我觉得和web.xml没关系,那东西eclipse可以自动生成,我觉得你先把\webapps\ROOT\WEB-INF\work\_jsp
    里面有关项目的class和java字节码文件都删掉,然后重新部署项目重新编译
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-24 00:21:2511楼 得分:0
    主要应该是web。xml里面配置的原因
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-24 08:29:2512楼 得分:0
    回7楼的话,我的连接池配置文件就是放在conf\Catalina\localhost 下的,其他地方什么server.xml web.xml里都没有再配置,以前也这样,可以正常运行。

    现在我不太知道在WEB-INF下怎么生成或者写一个web。xml?需要手写?还是直接把其他项目的拷贝过来就行?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-24 08:53:4713楼 得分:0
    我是在eclipse里建立的tomcat project;另外,我刚才把tomcat/conf下的web。xml拷贝过来执行同样提示错误。郁闷ing
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • yami251139
    • 等级:
    发表于:2008-06-24 09:48:5514楼 得分:10
    引用 13 楼 jiangeb 的回复:
    我是在eclipse里建立的tomcat project;另外,我刚才把tomcat/conf下的web。xml拷贝过来执行同样提示错误。郁闷ing

    (@^%(@%(@&%(@&%)@&%)@&%)
    XML code
    <resource-ref> <res-ref-name>jdbc/mysqlDataSource</res-ref-name> 在tomcat中配置的jndi名字和datasourcename <res-type>javax.sql.DataSource</res-type> 不变 <res-auth>Container</res-auth> 不变 </resource-ref>

    这一段要改的。。。
    直接拷过来的东西我还从没有跑起来过,都要改下的。。。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-24 10:33:5715楼 得分:20
    我用的数据库是MySQL5.0,所以首先要把MySQL的
    JDBC驱动程序拷贝到Tomcat安装目录的/common/lib下和你自己网站的/WEB-INF/lib下。
    Server.xml的修改我推荐使用Tomcat的Admin组件完成,完全图形化配置,相当容易。或者按下面的写法在

    <GlobalNamingResources> </GlobalNamingResources>之间写如下配置(仅供参考,各位用的时候,请改成自己
    数据库的配置):

    <Resource
    name="jdbc/mysql"
    type="javax.sql.DataSource"
    password="******"
    driverClassName="org.gjt.mm.mysql.Driver"
    maxIdle="2"
    maxWait="5000"
    username="root"
    url="jdbc:mysql://127.0.0.1/test"
    maxActive="4"/>

    然后,在Tomcat安装目录下/conf/Catalina/localhost文件夹中建立一个和你网站文件夹名字一样的
    例如:TestSourse.xml。内容如下:
    <?xml version="1.0" encoding="UTF-8"?> <Context>
    <Resource
    name="jdbc/mysql"
    type="javax.sql.DataSource"
    password="******"
    driverClassName="org.gjt.mm.mysql.Driver"
    maxIdle="2"
    maxWait="5000"
    username="root"
    url="jdbc:mysql://127.0.0.1/test"
    maxActive="4"/>
    </Context>

    其实就是把Server.xml的内容再重复一遍。这一步非常重要,如果没有这步就会出错,会出现
    org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class ''
    for connect URL 'null'错误。
    最后,在你自己网站的/WEB-INF/web.xml文件中,添加一下代码(参考):
    <resource-ref>
    <description>DB Connection </description>
    <res-ref-name>jdbc/mysql </res-ref-name>
    <res-type>javax.sql.DataSource </res-type>
    <res-auth>Container </res-auth>
    </resource-ref>
    OK。配置全部完成。现在你可以写代码测试这个数据库连接池了。如:
    DataSource ds = null;
    InitialContext ctx=new InitialContext();
    ds=(DataSource)ctx.lookup("java:comp/env/jdbc/mysql");
    Connection conn = ds.getConnection();
    数据库连接对象得到了。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-24 10:40:1616楼 得分:0
    jndi 和 datasourcename是什么? 以前的项目从来没有配置过。

    以前建立项目,整个的过程如下:
    1、在eclipse里建立tomcat project;
    2、在项目构建路径里加入tomcat\common\lib下的jar文件;
    3、在tomcat\conf\Catalina\localhost下修改 "项目名.xml"
    然后就可以正常运行了,也没有配置过什么jndi和datasourcename

    现在也这样,而且和以前的项目相同的环境,就不能运行。但是以前的项目还照样能运行。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-24 12:03:4317楼 得分:0
    回15楼:

    我步骤如下:
    1、我用的数据库是sqlserver2000,首先把msbase.jar\msutil.jar两个文件拷贝到了我网站的WEB-INF 下的lib目录和Tomcat安装目录的/common/lib下。

    2、在server.xml中添加如下代码:
    <Resource name="jdbc/Connection" type="javax.sql.DataSource" password="123456"
              driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver" maxIdle="2"      maxWait="5000" username="ServerProvider" url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=eripnls" maxActive="4" />

    3、因为我建立的是tomcat project,所以在eclipse中建立了项目后,在/conf/Catalina/localhost就会产生一个同名的xml文件,我修改xml文件如下:
    <Context path="/erip" reloadable="true" docBase="E:\workspace\erip" workDir="E:\workspace\erip\work" />
    <Resource auth="Container" driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver" logAbandoned="false" maxActive="100" maxIdle="30" maxWait="1000" name="jdbc/Connection" password="123456" removeAbandoned="true" removeAbandonedTimeout="180" type="javax.sql.DataSource" url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=eripnls" username="ServerProvider" />
    </Context>

    4、在自己网站的WEB-INF的web.xml中加了一句,整个内容如下:
    <?xml version="1.0" encoding="ISO-8859-1" ?>
      <!DOCTYPE web-app (View Source for full doctype...)>
    - <web-app>
      <display-name>My Web Application </display-name>
      <description>A application for test. </description>
    - <resource-ref>
      <description>DB Connection </description>
      <res-ref-name>jdbc/Connection </res-ref-name>
      <res-type>javax.sql.DataSource </res-type>
      <res-auth>Container </res-auth>
      </resource-ref>
    - <servlet>
      <servlet-name>UploadServ </servlet-name>
      <servlet-class>erip.UploadServ </servlet-class>
      </servlet>
    </web-app>

    作了上面所有这些工作,还是提示连接池的conn为空,我无语了!
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved