快被Tomcat连接Mysql连接池问题弄疯了!

时间:2022-09-19 23:05:04
有三天了吧! 一下停留在这个问题上,几乎看遍了网上所有的文章了,可总有各种各样的错误跑来来。
去参考官方网站,按提示写,还有有错误:
网页上的报错是:

org.apache.jasper.JasperException: An exception occurred processing JSP page /test.jsp at line 3

1: <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
2: <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
3: <sql:query var="rs" dataSource="jdbc/TestDB">
4: select id, foo, bar from testdata
5: </sql:query>
6: <html>
================================
我的JSP文件如下,我感觉没有错啊,一个字都没有错的啊
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<sql:query var="rs" dataSource="jdbc/TestDB">
select id, foo, bar from testdata
</sql:query>
<html>
<head>
<title>DB Test</title>
</head>
<body>
<h2>Results</h2>

<c:forEach var="row" items="${rs.rows}">
Foo ${row.foo}<br/>
Bar ${row.bar}<br/>
</c:forEach>
</body>
</html> 
============================
Tomcat中报错如下:


信息: Server startup in 1082 ms
2009-8-23 12:08:27 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet jsp threw exception
javax.servlet.jsp.JspException: Unable to get connection, DataSource invalid: "org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Server connection failure during transaction. Due to underlying exception: 'java.net.SocketException: java.net.ConnectException: Connection refused: connect'.

** BEGIN NESTED EXCEPTION ** 

java.net.SocketException
MESSAGE: java.net.ConnectException: Connection refused: connect

STACKTRACE:

java.net.SocketException: java.net.ConnectException: Connection refused: connect
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:156)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:276)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2815)
at com.mysql.jdbc.Connection.<init>(Connection.java:1531)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
at org.apache.tomcat.dbcp.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)
at org.apache.tomcat.dbcp.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:294)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1247)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1221)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)
at org.apache.taglibs.standard.tag.common.sql.QueryTagSupport.getConnection(QueryTagSupport.java:274)
at org.apache.taglibs.standard.tag.common.sql.QueryTagSupport.doStartTag(QueryTagSupport.java:159)
at org.apache.jsp.test_jsp._jspx_meth_sql_005fquery_005f0(test_jsp.java:103)
at org.apache.jsp.test_jsp._jspService(test_jsp.java:62)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)


** END NESTED EXCEPTION **


Attempted reconnect 3 times. Giving up.)"
at org.apache.taglibs.standard.tag.common.sql.QueryTagSupport.getConnection(QueryTagSupport.java:276)
at org.apache.taglibs.standard.tag.common.sql.QueryTagSupport.doStartTag(QueryTagSupport.java:159)
at org.apache.jsp.test_jsp._jspx_meth_sql_005fquery_005f0(test_jsp.java:103)
at org.apache.jsp.test_jsp._jspService(test_jsp.java:62)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
2009-8-23 12:08:34 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet jsp threw exception
javax.servlet.jsp.JspException: Unable to get connection, DataSource invalid: "org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Server connection failure during transaction. Due to underlying exception: 'java.net.SocketException: java.net.ConnectException: Connection refused: connect'.


============================

如果您解决了这个问题,您是否有空去看看,能不能顺便看一下我发的另一个问题,关于编码不一致的问题:http://topic.csdn.net/u/20090822/17/3eba5680-bdc6-4b59-9409-de782f170523.html?seed=1973859369&r=59270155#r_59270155

20 个解决方案

#1


我的web.xml如下:

<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    version="2.4">
  <description>MySQL Test App</description>
  <resource-ref>
      <description>DB Connection</description>
      <res-ref-name>jdbc/TestDB</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
  </resource-ref>
</web-app>


%tomcat%/conf/context.xml如下:

<?xml version='1.0' encoding='utf-8'?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<!-- The contents of this file will be loaded for each web application -->





<Context path="/DBTest" docBase="D:\myeclipse_workspace\DBTest\WebRoot"
        debug="5" reloadable="true" crossContext="true">

  <Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
               maxActive="100" maxIdle="30" maxWait="10000"
               username="javauser" password="javadude" driverClassName="com.mysql.jdbc.Driver"
               url="jdbc:mysql://localhost:3306/javatest?autoReconnect=true"/>

</Context>

#2


有时候还报这种错误,不知为何:

HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: javax.servlet.ServletException: javax.servlet.jsp.JspException: Unable to get connection, DataSource invalid: "org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Server connection failure during transaction. Due to underlying exception: 'java.net.SocketException: java.net.ConnectException: Connection refused: connect'.

** BEGIN NESTED EXCEPTION ** 

java.net.SocketException
MESSAGE: java.net.ConnectException: Connection refused: connect

STACKTRACE:

java.net.SocketException: java.net.ConnectException: Connection refused: connect
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:156)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:276)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2815)
at com.mysql.jdbc.Connection.<init>(Connection.java:1531)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
at org.apache.tomcat.dbcp.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)
at org.apache.tomcat.dbcp.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:294)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1247)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1221)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)
at org.apache.taglibs.standard.tag.common.sql.QueryTagSupport.getConnection(QueryTagSupport.java:274)
at org.apache.taglibs.standard.tag.common.sql.QueryTagSupport.doStartTag(QueryTagSupport.java:159)
at org.apache.jsp.test_jsp._jspx_meth_sql_005fquery_005f0(test_jsp.java:103)
at org.apache.jsp.test_jsp._jspService(test_jsp.java:62)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)


** END NESTED EXCEPTION **


Attempted reconnect 3 times. Giving up.)"
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:522)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:398)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

root cause

javax.servlet.ServletException: javax.servlet.jsp.JspException: Unable to get connection, DataSource invalid: "org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Server connection failure during transaction. Due to underlying exception: 'java.net.SocketException: java.net.ConnectException: Connection refused: connect'.

** BEGIN NESTED EXCEPTION ** 

java.net.SocketException
MESSAGE: java.net.ConnectException: Connection refused: connect

STACKTRACE:

java.net.SocketException: java.net.ConnectException: Connection refused: connect
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:156)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:276)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2815)
at com.mysql.jdbc.Connection.<init>(Connection.java:1531)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
at org.apache.tomcat.dbcp.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)
at org.apache.tomcat.dbcp.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:294)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1247)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1221)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)
at org.apache.taglibs.standard.tag.common.sql.QueryTagSupport.getConnection(QueryTagSupport.java:274)
at org.apache.taglibs.standard.tag.common.sql.QueryTagSupport.doStartTag(QueryTagSupport.java:159)
at org.apache.jsp.test_jsp._jspx_meth_sql_005fquery_005f0(test_jsp.java:103)
at org.apache.jsp.test_jsp._jspService(test_jsp.java:62)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)


** END NESTED EXCEPTION **


Attempted reconnect 3 times. Giving up.)"
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:850)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:779)
org.apache.jsp.test_jsp._jspService(test_jsp.java:82)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

#3


打开数据库了没

#4


推荐看下这个tomcat数据源配置 http://d.download.csdn.net/down/648385/javagxc

#5


mark

#6


连接池
很头痛
我之前也搞了很久
但是我的和你好像不一样
http://topic.csdn.net/u/20090728/10/95c608fc-5065-4dd0-9f6d-7bc50cd0ff54.html
这是当时我遇到时贴的帖子。最后自己解决的。

如果有需要还可以加我群沟通:
*java风暴*   63353323
Java诺曼底    5052365

#7


用proxool这个比较好.

#8


我还是交给spring了。就在context.xml配置了下,如同1楼的答案

#9


Ssh 连接池配置代码
第一步:
1.配置tomcat下的conf下的context.xml文件,在之间添加连接池配置:      
<Resource name="jdbc/mldn"    
         auth="Container"        
         type="javax.sql.DataSource"        
         driverClassName="com.mysql.jdbc.Driver"        
         url="jdbc:mysql://localhost:3306/mldn"        
         username="root"        
         password="root"        
         maxActive="100"        
         maxIdle="30"        
         maxWait="10000" />  
2.配置你的应用下的web.xml中的之间加入:
<resource-ref>        
<description>DB Connection</description>        
<res-ref-name>jdbc/mldn</res-ref-name>        
<res-type>javax.sql.DataSource</res-type>        
<res-auth>Container</res-auth>        
</resource-ref>  
3:在applicationContext.xml中加入
<bean id="dataSource"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:comp/env/jdbc/mldn"></property>
</bean>


Ssh配置proxool 连接池
1 首先拷贝proxool-0.9.0RC3.jar及commons-logging.jar,mysql-connector-java-5.0.4-bin.jar
到Tomcat 6.0\lib目录下


2 首先在WEB-INF目录下创建proxool.xml文件
<?xml version="1.0" encoding="utf-8"?>
<something-else-entirely>
<proxool>
<alias>database</alias>
<driver-url>
jdbc:mysql://localhost:3306/mldn
</driver-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<driver-properties>
<property name="user" value="root" />
<property name="password" value="root" />
</driver-properties>
<house-keeping-sleep-time>90000</house-keeping-sleep-time>
<prototype-count>3</prototype-count>
<maximum-new-connections>20</maximum-new-connections>
<maximum-connection-count>10000</maximum-connection-count>
<minimum-connection-count>5</minimum-connection-count>
<house-keeping-test-sql>
select CURRENT_DATE
</house-keeping-test-sql>
</proxool>
</something-else-entirely>


3 在Web.xml中设置相关内容
<servlet>
<servlet-name>ServletConfigurator</servlet-name>
<servlet-class>
org.logicalcobwebs.proxool.configuration.ServletConfigurator
</servlet-class>
<init-param>
<param-name>xmlFile</param-name>
<param-value>WEB-INF/proxool.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>

<servlet>
<servlet-name>context</servlet-name>
<servlet-class>
org.springframework.web.context.ContextLoaderServlet
</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>

<servlet>
<servlet-name>Admin</servlet-name>
<servlet-class>
org.logicalcobwebs.proxool.admin.servlet.AdminServlet
</servlet-class>
</servlet>
第3个图表可以查看连接状态

4 拷贝proxool-0.9.0RC3.jar及commons-logging.jar 到lib目录下
SSH整合包,已经包含了commons-logging.jar包,就不需要了。
如果单是用JSP的话,有些配置就不需要了.

#10


收藏了,等回答

#11


1: <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %> 
2: <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 
3: <sql:query var="rs" dataSource="jdbc/TestDB"> 
4: select id, foo, bar from testdata 
5: </sql:query> 
6: <html> 

jsp中要确保标签库都引进来了。
第三行的3: <sql:query var="rs" dataSource="jdbc/TestDB"> 里
,要注意你的mysql数据库的名字叫做“TestDB”

还有就是
<Context path="/DBTest" docBase="D:\myeclipse_workspace\DBTest\WebRoot"
        debug="5" reloadable="true" crossContext="true">

  <Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
               maxActive="100" maxIdle="30" maxWait="10000"
               username="javauser" password="javadude" driverClassName="com.mysql.jdbc.Driver"
               url="jdbc:mysql://localhost:3306/javatest?autoReconnect=true"/>

</Context>
的问题了。
前两天我也调试了的,但后来还是不行,让我一哥们给弄通了,主要问题就出现在context的设置里了。

path="/DBTest" docBase="DBTest"
但这里的path和docbase指的是你工程的名字
Resource 里都是你配置mysql的属性,千万别写错啊,用户名或密码,还有url
再有一个问题就是该导的包你都导了。
如果以上你都配置没有问题的话,344100592,再找我吧~
我用的是mysql,tomcat6.0

#12


我的是直接在Tomcat 6.0\conf\Catalina\localhost建立了项目的xml文件,直接部署和连接池一起弄好的.
<?xml version="1.0" encoding="UTF-8" ?>
<Context path="/teacher" docBase="E:\workspace\teacher\WebRoot" debug="5" reloadable="true"
  crossContext="true">
<Resource
name="jdbc/mysql"
type="javax.sql.DataSource"                         
driverClassName="org.gjt.mm.mysql.Driver"
url="jdbc:mysql:///teachers?useUnicode=true&amp;characterEncoding=gbk"
username="root"
password="123456"
maxIdle="5"
maxWait="-1"   
maxActive="15"
/>

</Context>

#13


java.net.ConnectException: Connection refused: connect'

看错误,你的数据库
1 没有启动
2 启动了,但有防火墙
3 端口或者主机IP写错了

OVER

#14


配置可能正确的,否则不会受到refused
可能是防火墙类的问题挡住了。
还有端口是否正确,协议是否打开。

#15


引用 13 楼 java2000_net 的回复:
java.net.ConnectException: Connection refused: connect'

看错误,你的数据库
1 没有启动
2 启动了,但有防火墙
3 端口或者主机IP写错了

OVER


老紫竹啊
我之前也遇到过这个问题
1:绝对有启动服务
2:防火墙就不晓得了
我的那问题现在也没了。
搞不懂。
时有时无。
现在项目跑的很好!
3:端口主机ip杂可能那么轻易搞错呢?

#16


反正是网络问题。
连不上。

#17


看就是数据库的问题。确认从 tomcat 所在机器,使用 tomcat 所连接库使用的那个 ip 和 用户名,能连上吗?换句话说, telnet 192.168.0.10 3306 能连上吗?

应该是 mysql 是否授权的问题
或者是防火墙的问题
既然你什么都跟网上的文章一模一样,那就肯定不是 tomcat 配置的问题。

#18


引用 15 楼 xiechunmei13 的回复:
引用 13 楼 java2000_net 的回复:
 java.net.ConnectException: Connection refused: connect'

 看错误,你的数据库
 1 没有启动
 2 启动了,但有防火墙
 3 端口或者主机IP写错了

 OVER


 老紫竹啊
 我之前也遇到过这个问题
 1:绝对有启动服务
2:防火墙就不晓得了
 我的那问题现在也没了。
 搞不懂。
 时有时无。
 现在项目跑的很好!
 3:端口主机ip杂可能那么轻易搞错呢?



还是你说的有道理,防火墙应该是没有问题的,我添加Mysql的端口了在防火墙里。

后来重新安装了一下Mysql,再后来,在Tomcat/webapp下直接用,没有Myeclipse,后来也就好了,不知道为何。
也和你一样,是不知道为何就好了。

#19


引用 11 楼 caoyuanlang_11 的回复:
 jsp中要确保标签库都引进来了。
 第三行的3:  <sql:query var="rs" dataSource="jdbc/TestDB"> 里
 ,要注意你的mysql数据库的名字叫做“TestDB”


有一点 你说的是错误的,我的数据库在 context.xml Resource uri中指出来了,数据库的名字叫 javatest

关于名字的问题,参考了一下官方网站的实例,自我感觉是这样的,我写在自己的博客里了:http://blog.csdn.net/paincupid/archive/2009/08/23/4474586.aspx

#20


引用 17 楼 sswater 的回复:
看就是数据库的问题。确认从 tomcat 所在机器,使用 tomcat 所连接库使用的那个 ip 和 用户名,能连上吗?换句话说, telnet 192.168.0.10 3306 能连上吗?

 应该是 mysql 是否授权的问题
 或者是防火墙的问题
 既然你什么都跟网上的文章一模一样,那就肯定不是 tomcat 配置的问题。

我的是:127.0.0.1 3306
不知道是什么问题,只是后来不用myeclipse后就好了,随后再且Myeclipse也没事儿。只是不知为何

still thanks

#1


我的web.xml如下:

<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    version="2.4">
  <description>MySQL Test App</description>
  <resource-ref>
      <description>DB Connection</description>
      <res-ref-name>jdbc/TestDB</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
  </resource-ref>
</web-app>


%tomcat%/conf/context.xml如下:

<?xml version='1.0' encoding='utf-8'?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<!-- The contents of this file will be loaded for each web application -->





<Context path="/DBTest" docBase="D:\myeclipse_workspace\DBTest\WebRoot"
        debug="5" reloadable="true" crossContext="true">

  <Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
               maxActive="100" maxIdle="30" maxWait="10000"
               username="javauser" password="javadude" driverClassName="com.mysql.jdbc.Driver"
               url="jdbc:mysql://localhost:3306/javatest?autoReconnect=true"/>

</Context>

#2


有时候还报这种错误,不知为何:

HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: javax.servlet.ServletException: javax.servlet.jsp.JspException: Unable to get connection, DataSource invalid: "org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Server connection failure during transaction. Due to underlying exception: 'java.net.SocketException: java.net.ConnectException: Connection refused: connect'.

** BEGIN NESTED EXCEPTION ** 

java.net.SocketException
MESSAGE: java.net.ConnectException: Connection refused: connect

STACKTRACE:

java.net.SocketException: java.net.ConnectException: Connection refused: connect
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:156)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:276)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2815)
at com.mysql.jdbc.Connection.<init>(Connection.java:1531)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
at org.apache.tomcat.dbcp.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)
at org.apache.tomcat.dbcp.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:294)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1247)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1221)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)
at org.apache.taglibs.standard.tag.common.sql.QueryTagSupport.getConnection(QueryTagSupport.java:274)
at org.apache.taglibs.standard.tag.common.sql.QueryTagSupport.doStartTag(QueryTagSupport.java:159)
at org.apache.jsp.test_jsp._jspx_meth_sql_005fquery_005f0(test_jsp.java:103)
at org.apache.jsp.test_jsp._jspService(test_jsp.java:62)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)


** END NESTED EXCEPTION **


Attempted reconnect 3 times. Giving up.)"
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:522)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:398)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

root cause

javax.servlet.ServletException: javax.servlet.jsp.JspException: Unable to get connection, DataSource invalid: "org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Server connection failure during transaction. Due to underlying exception: 'java.net.SocketException: java.net.ConnectException: Connection refused: connect'.

** BEGIN NESTED EXCEPTION ** 

java.net.SocketException
MESSAGE: java.net.ConnectException: Connection refused: connect

STACKTRACE:

java.net.SocketException: java.net.ConnectException: Connection refused: connect
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:156)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:276)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2815)
at com.mysql.jdbc.Connection.<init>(Connection.java:1531)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
at org.apache.tomcat.dbcp.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)
at org.apache.tomcat.dbcp.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:294)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1247)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1221)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)
at org.apache.taglibs.standard.tag.common.sql.QueryTagSupport.getConnection(QueryTagSupport.java:274)
at org.apache.taglibs.standard.tag.common.sql.QueryTagSupport.doStartTag(QueryTagSupport.java:159)
at org.apache.jsp.test_jsp._jspx_meth_sql_005fquery_005f0(test_jsp.java:103)
at org.apache.jsp.test_jsp._jspService(test_jsp.java:62)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)


** END NESTED EXCEPTION **


Attempted reconnect 3 times. Giving up.)"
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:850)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:779)
org.apache.jsp.test_jsp._jspService(test_jsp.java:82)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

#3


打开数据库了没

#4


推荐看下这个tomcat数据源配置 http://d.download.csdn.net/down/648385/javagxc

#5


mark

#6


连接池
很头痛
我之前也搞了很久
但是我的和你好像不一样
http://topic.csdn.net/u/20090728/10/95c608fc-5065-4dd0-9f6d-7bc50cd0ff54.html
这是当时我遇到时贴的帖子。最后自己解决的。

如果有需要还可以加我群沟通:
*java风暴*   63353323
Java诺曼底    5052365

#7


用proxool这个比较好.

#8


我还是交给spring了。就在context.xml配置了下,如同1楼的答案

#9


Ssh 连接池配置代码
第一步:
1.配置tomcat下的conf下的context.xml文件,在之间添加连接池配置:      
<Resource name="jdbc/mldn"    
         auth="Container"        
         type="javax.sql.DataSource"        
         driverClassName="com.mysql.jdbc.Driver"        
         url="jdbc:mysql://localhost:3306/mldn"        
         username="root"        
         password="root"        
         maxActive="100"        
         maxIdle="30"        
         maxWait="10000" />  
2.配置你的应用下的web.xml中的之间加入:
<resource-ref>        
<description>DB Connection</description>        
<res-ref-name>jdbc/mldn</res-ref-name>        
<res-type>javax.sql.DataSource</res-type>        
<res-auth>Container</res-auth>        
</resource-ref>  
3:在applicationContext.xml中加入
<bean id="dataSource"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:comp/env/jdbc/mldn"></property>
</bean>


Ssh配置proxool 连接池
1 首先拷贝proxool-0.9.0RC3.jar及commons-logging.jar,mysql-connector-java-5.0.4-bin.jar
到Tomcat 6.0\lib目录下


2 首先在WEB-INF目录下创建proxool.xml文件
<?xml version="1.0" encoding="utf-8"?>
<something-else-entirely>
<proxool>
<alias>database</alias>
<driver-url>
jdbc:mysql://localhost:3306/mldn
</driver-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<driver-properties>
<property name="user" value="root" />
<property name="password" value="root" />
</driver-properties>
<house-keeping-sleep-time>90000</house-keeping-sleep-time>
<prototype-count>3</prototype-count>
<maximum-new-connections>20</maximum-new-connections>
<maximum-connection-count>10000</maximum-connection-count>
<minimum-connection-count>5</minimum-connection-count>
<house-keeping-test-sql>
select CURRENT_DATE
</house-keeping-test-sql>
</proxool>
</something-else-entirely>


3 在Web.xml中设置相关内容
<servlet>
<servlet-name>ServletConfigurator</servlet-name>
<servlet-class>
org.logicalcobwebs.proxool.configuration.ServletConfigurator
</servlet-class>
<init-param>
<param-name>xmlFile</param-name>
<param-value>WEB-INF/proxool.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>

<servlet>
<servlet-name>context</servlet-name>
<servlet-class>
org.springframework.web.context.ContextLoaderServlet
</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>

<servlet>
<servlet-name>Admin</servlet-name>
<servlet-class>
org.logicalcobwebs.proxool.admin.servlet.AdminServlet
</servlet-class>
</servlet>
第3个图表可以查看连接状态

4 拷贝proxool-0.9.0RC3.jar及commons-logging.jar 到lib目录下
SSH整合包,已经包含了commons-logging.jar包,就不需要了。
如果单是用JSP的话,有些配置就不需要了.

#10


收藏了,等回答

#11


1: <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %> 
2: <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 
3: <sql:query var="rs" dataSource="jdbc/TestDB"> 
4: select id, foo, bar from testdata 
5: </sql:query> 
6: <html> 

jsp中要确保标签库都引进来了。
第三行的3: <sql:query var="rs" dataSource="jdbc/TestDB"> 里
,要注意你的mysql数据库的名字叫做“TestDB”

还有就是
<Context path="/DBTest" docBase="D:\myeclipse_workspace\DBTest\WebRoot"
        debug="5" reloadable="true" crossContext="true">

  <Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
               maxActive="100" maxIdle="30" maxWait="10000"
               username="javauser" password="javadude" driverClassName="com.mysql.jdbc.Driver"
               url="jdbc:mysql://localhost:3306/javatest?autoReconnect=true"/>

</Context>
的问题了。
前两天我也调试了的,但后来还是不行,让我一哥们给弄通了,主要问题就出现在context的设置里了。

path="/DBTest" docBase="DBTest"
但这里的path和docbase指的是你工程的名字
Resource 里都是你配置mysql的属性,千万别写错啊,用户名或密码,还有url
再有一个问题就是该导的包你都导了。
如果以上你都配置没有问题的话,344100592,再找我吧~
我用的是mysql,tomcat6.0

#12


我的是直接在Tomcat 6.0\conf\Catalina\localhost建立了项目的xml文件,直接部署和连接池一起弄好的.
<?xml version="1.0" encoding="UTF-8" ?>
<Context path="/teacher" docBase="E:\workspace\teacher\WebRoot" debug="5" reloadable="true"
  crossContext="true">
<Resource
name="jdbc/mysql"
type="javax.sql.DataSource"                         
driverClassName="org.gjt.mm.mysql.Driver"
url="jdbc:mysql:///teachers?useUnicode=true&amp;characterEncoding=gbk"
username="root"
password="123456"
maxIdle="5"
maxWait="-1"   
maxActive="15"
/>

</Context>

#13


java.net.ConnectException: Connection refused: connect'

看错误,你的数据库
1 没有启动
2 启动了,但有防火墙
3 端口或者主机IP写错了

OVER

#14


配置可能正确的,否则不会受到refused
可能是防火墙类的问题挡住了。
还有端口是否正确,协议是否打开。

#15


引用 13 楼 java2000_net 的回复:
java.net.ConnectException: Connection refused: connect'

看错误,你的数据库
1 没有启动
2 启动了,但有防火墙
3 端口或者主机IP写错了

OVER


老紫竹啊
我之前也遇到过这个问题
1:绝对有启动服务
2:防火墙就不晓得了
我的那问题现在也没了。
搞不懂。
时有时无。
现在项目跑的很好!
3:端口主机ip杂可能那么轻易搞错呢?

#16


反正是网络问题。
连不上。

#17


看就是数据库的问题。确认从 tomcat 所在机器,使用 tomcat 所连接库使用的那个 ip 和 用户名,能连上吗?换句话说, telnet 192.168.0.10 3306 能连上吗?

应该是 mysql 是否授权的问题
或者是防火墙的问题
既然你什么都跟网上的文章一模一样,那就肯定不是 tomcat 配置的问题。

#18


引用 15 楼 xiechunmei13 的回复:
引用 13 楼 java2000_net 的回复:
 java.net.ConnectException: Connection refused: connect'

 看错误,你的数据库
 1 没有启动
 2 启动了,但有防火墙
 3 端口或者主机IP写错了

 OVER


 老紫竹啊
 我之前也遇到过这个问题
 1:绝对有启动服务
2:防火墙就不晓得了
 我的那问题现在也没了。
 搞不懂。
 时有时无。
 现在项目跑的很好!
 3:端口主机ip杂可能那么轻易搞错呢?



还是你说的有道理,防火墙应该是没有问题的,我添加Mysql的端口了在防火墙里。

后来重新安装了一下Mysql,再后来,在Tomcat/webapp下直接用,没有Myeclipse,后来也就好了,不知道为何。
也和你一样,是不知道为何就好了。

#19


引用 11 楼 caoyuanlang_11 的回复:
 jsp中要确保标签库都引进来了。
 第三行的3:  <sql:query var="rs" dataSource="jdbc/TestDB"> 里
 ,要注意你的mysql数据库的名字叫做“TestDB”


有一点 你说的是错误的,我的数据库在 context.xml Resource uri中指出来了,数据库的名字叫 javatest

关于名字的问题,参考了一下官方网站的实例,自我感觉是这样的,我写在自己的博客里了:http://blog.csdn.net/paincupid/archive/2009/08/23/4474586.aspx

#20


引用 17 楼 sswater 的回复:
看就是数据库的问题。确认从 tomcat 所在机器,使用 tomcat 所连接库使用的那个 ip 和 用户名,能连上吗?换句话说, telnet 192.168.0.10 3306 能连上吗?

 应该是 mysql 是否授权的问题
 或者是防火墙的问题
 既然你什么都跟网上的文章一模一样,那就肯定不是 tomcat 配置的问题。

我的是:127.0.0.1 3306
不知道是什么问题,只是后来不用myeclipse后就好了,随后再且Myeclipse也没事儿。只是不知为何

still thanks

#21