日期:2014-05-18  浏览次数:20619 次

部分程序 连接不到 Connection Pool ,何解?
我原先的$CATALINA_HOME/conf/server.xml中设置如下:
<Context   path= "/MyPro "     docBase= "MyPro "...>
程序一切运转正常.
近来因为需要把程序改成默认站点.我修改了配置为
<Context   path= " "   docBase= "MyPro "...>

站点运行起来也正常,但是我有个JSP   页面用到   鼠标移动到热点上来   调用Servlet,出现如下错误

javax.naming.NameNotFoundException:   Name   jdbc   is   not   bound   in   this   Context整个站点仅仅此功能受限,其他运行正常.
在URL直接输入   http://localhost/Servlet名.
也能正确返回值.  

在网上找了很多资料,但是没遇见有类似的情况.
请问大家在设置tomcat默认站点的时候有遇见这样的情况吗?   该如何解决呀?


------解决方案--------------------
是你连接数据库语句的问题吧
st = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
------解决方案--------------------
把servlet配置文件url-pattern改动一下。例如:如果是/servlet改成MyPro/servlet,试试。。。。
这里MyPro是你的Context

------解决方案--------------------
Context path= " " docBase= "MyPro "...>

这样写后,你的DATASOURCE只能在http://localhost/servlet/下获取到了,
如果你用http://localhost/***/servlet/来访问,就是不同的应用了
不仅限于datasource连session都是如此。

http://localhost/***/servlet/ 和http://localhost/servlet/是不同的应用

解决方法:
1.还改回原来的配置
2.将你所有程序中访问前缀MyPro去掉(搜索一下即可),建议你在common.jsp(被包含文件)中定义一个contextPath 变量,这样访问图片呀,链接呀都加上contextPath就可以了,改的话只需改这一个地方