[转帖]Cannot create PoolableConnectionFactory (Communications link failure)_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2293 | 回复: 0   主题: [转帖]Cannot create PoolableConnectionFactory (Communications link failure)        下一篇 
ab19890824
注册用户
等级:少尉
经验:351
发帖:92
精华:0
注册:2011-11-21
状态:离线
发送短消息息给ab19890824 加好友    发送短消息息给ab19890824 发消息
发表于: IP:您无权察看 2014-12-22 11:22:26 | [全部帖] [楼主帖] 楼主

今天在做web项目的时候碰到了这样的一个异常:

Caused by: java.lang.RuntimeException: org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Communications link failureThe last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.)    at edu.gzucm.yjsglxt.base.util.TimeSetUtils.getTimeSets(TimeSetUtils.java:52)    at edu.gzucm.yjsglxt.base.util.TimeSetUtils.<clinit>(TimeSetUtils.java:22)    ... 3 moreCaused by: org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Communications link failureThe last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.)    at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1549)    at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388)    at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)    at edu.gzucm.yjsglxt.base.util.TimeSetUtils.getTimeSets(TimeSetUtils.java:32)    ... 4 moreCaused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failureThe last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)    at java.lang.reflect.Constructor.newInstance(Unknown Source)    at com.mysql.jdbc.Util.handleNewInstance(Util.java:407)    at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1116)    at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:346)    at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2334)    at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2371)    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2163)    at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:794)    at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)    at java.lang.reflect.Constructor.newInstance(Unknown Source)    at com.mysql.jdbc.Util.handleNewInstance(Util.java:407)    at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:378)    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:305)    at org.apache.tomcat.dbcp.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)    at org.apache.tomcat.dbcp.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:582)    at org.apache.tomcat.dbcp.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1556)    at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1545)    ... 7 moreCaused by: java.net.ConnectException: Connection refused: connect    at java.net.PlainSocketImpl.socketConnect(Native Method)    at java.net.PlainSocketImpl.doConnect(Unknown Source)    at java.net.PlainSocketImpl.connectToAddress(Unknown Source)    at java.net.PlainSocketImpl.connect(Unknown Source)    at java.net.SocksSocketImpl.connect(Unknown Source)    at java.net.Socket.connect(Unknown Source)    at java.net.Socket.connect(Unknown Source)    at java.net.Socket.<init>(Unknown Source)    at java.net.Socket.<init>(Unknown Source)    at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:254)    at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:295)    ... 23 more2012-2-19 15:35:27 edu.gzucm.yjsglxt.base.util.InitInfoUtil <clinit>严重: nullorg.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Communications link failureThe last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.)    at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1549)    at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388)    at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)    at edu.gzucm.yjsglxt.base.util.DataSourceUtil.getConnection(DataSourceUtil.java:67)    at edu.gzucm.yjsglxt.base.util.InitInfoUtil.<clinit>(InitInfoUtil.java:265)    at edu.gzucm.yjsglxt.base.filter.PrepareFilter.init(PrepareFilter.java:116)    at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:273)    at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:254)    at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:372)    at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:98)    at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4584)    at org.apache.catalina.core.StandardContext$2.call(StandardContext.java:5262)    at org.apache.catalina.core.StandardContext$2.call(StandardContext.java:5257)    at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)    at java.util.concurrent.FutureTask.run(Unknown Source)    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)    at java.lang.Thread.run(Unknown Source)Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failureThe last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)    at java.lang.reflect.Constructor.newInstance(Unknown Source)    at com.mysql.jdbc.Util.handleNewInstance(Util.java:407)    at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1116)    at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:346)    at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2334)    at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2371)    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2163)    at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:794)    at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)    at java.lang.reflect.Constructor.newInstance(Unknown Source)    at com.mysql.jdbc.Util.handleNewInstance(Util.java:407)    at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:378)    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:305)    at org.apache.tomcat.dbcp.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)    at org.apache.tomcat.dbcp.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:582)    at org.apache.tomcat.dbcp.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1556)    at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1545)    ... 17 moreCaused by: java.net.ConnectException: Connection refused: connect    at java.net.PlainSocketImpl.socketConnect(Native Method)    at java.net.PlainSocketImpl.doConnect(Unknown Source)    at java.net.PlainSocketImpl.connectToAddress(Unknown Source)    at java.net.PlainSocketImpl.connect(Unknown Source)    at java.net.SocksSocketImpl.connect(Unknown Source)    at java.net.Socket.connect(Unknown Source)    at java.net.Socket.connect(Unknown Source)    at java.net.Socket.<init>(Unknown Source)    at java.net.Socket.<init>(Unknown Source)    at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:254)    at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:295)    ... 33 more2012-2-19 15:35:27 org.apache.coyote.AbstractProtocol start信息: Starting ProtocolHandler ["http-bio-8080"]2012-2-19 15:35:27 org.apache.coyote.AbstractProtocol start信息: Starting ProtocolHandler ["ajp-bio-8009"]2012-2-19 15:35:27 org.apache.catalina.startup.Catalina start信息: Server startup in 2983 ms

 我知道是连接数据库的时候出现了错误,我检查了我的tomcat的配置文件context.xml文件

配置如下:

1 <?xml version="1.0" encoding="UTF-8"?>
2 <!--
3   Licensed to the Apache Software Foundation (ASF) under one or more
4   contributor license agreements.  See the NOTICE file distributed with
5   this work for additional information regarding copyright ownership.
6   The ASF licenses this file to You under the Apache License, Version 2.0
7   (the "License"); you may not use this file except in compliance with
8   the License.  You may obtain a copy of the License at
9
10       http://www.apache.org/licenses/LICENSE-2.0
11
12   Unless required by applicable law or agreed to in writing, software
13   distributed under the License is distributed on an "AS IS" BASIS,
14   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15   See the License for the specific language governing permissions and
16   limitations under the License.
17 --><!-- The contents of this file will be loaded for each web application --><Context>
18
19     <!-- Default set of monitored resources -->
20     <WatchedResource>WEB-INF/web.xml</WatchedResource>
21
22     <!-- Uncomment this to disable session persistence across Tomcat restarts -->
23     <!--
24     <Manager pathname="" />
25 -->
26
27     <!-- Uncomment this to enable Comet connection tacking (provides events
28          on session expiration as well as webapp lifecycle) -->
29     <!--
30     <Valve className="org.apache.catalina.valves.CometConnectionManagerValve" />
31 -->
32      <Resource auth="Container"
33      driverClassName="com.mysql.jdbc.Driver"
34      maxActive="100"
35      maxIdle="30"
36      maxWait="10000"
37      name="jdbc/mysql"
38      password="root"
39      type="javax.sql.DataSource"
40      url="jdbc:mysql:///yjsglxt?characterEncoding=UTF-8"
41      username="root"/>
42 </Context>


查了一下,才发现原来是url这里有问题:

1 url="jdbc:mysql:///yjsglxt?characterEncoding=UTF-8"


应该改成:

1 url="jdbc:mysql://localhost:3306/yjsglxt?characterEncoding=UTF-8"


这样做了以后,再次运行一下项目,嘿嘿,可以了……

--转自 北京联动北方科技有限公司




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论