Could not get JDBC Connection--java

來源:互聯網
上載者:User

標籤:ibatis   intercept   page   one   pos   any   actor   server   測試   

postMan上調用合約服務,後台運行錯誤,如下:

{    "timestamp": 1536203887641,    "status": 500,    "error": "Internal Server Error",    "exception": "org.mybatis.spring.MyBatisSystemException",    "message": "nested exception is org.apache.ibatis.exceptions.PersistenceException: \n### Error querying database.  Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Communications link failure\n\nThe last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.)\n### The error may exist in file [/Users/lizhao/Documents/code/retail-seal/seal-server/target/classes/mappers/ContractTemplateDetailMapper.xml]\n### The error may involve tech.fullink.stone.seal.server.dao.mappers.ContractTemplateDetailMapper.selectByContractCode\n### The error occurred while executing a query\n### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Communications link failure\n\nThe last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.)",    "path": "/retail-seal/api/v1/seal"}

網上針對“jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection”關鍵字搜尋一番之後,發現並不匹配目前的情況。仔細檢查了下資料庫連接的各種配置,發現準確無誤。

 

實在無解的情況下,針對查詢語句寫單元測試,發現了不同的錯誤提示:

### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.commons.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.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)    at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:150)    at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:141)    at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:77)    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)    at java.lang.reflect.Method.invoke(Method.java:498)    at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:433)    ... 40 moreCaused by: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.commons.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.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:80)    at org.mybatis.spring.transaction.SpringManagedTransaction.openConnection(SpringManagedTransaction.java:82)    at org.mybatis.spring.transaction.SpringManagedTransaction.getConnection(SpringManagedTransaction.java:68)    at org.apache.ibatis.executor.BaseExecutor.getConnection(BaseExecutor.java:338)    at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:84)    at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:62)    at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:326)    at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)    at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)    at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:83)    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)    at java.lang.reflect.Method.invoke(Method.java:498)    at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)    at com.github.pagehelper.SqlUtil._processPage(SqlUtil.java:401)    at com.github.pagehelper.SqlUtil.processPage(SqlUtil.java:374)    at com.github.pagehelper.PageHelper.intercept(PageHelper.java:254)    at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)    at com.sun.proxy.$Proxy140.query(Unknown Source)    at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:148)    ... 47 moreCaused by: org.apache.commons.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.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1549)    at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388)    at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)    at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:111)    at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:77)    ... 67 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(NativeConstructorAccessorImpl.java:62)    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)    at com.mysql.jdbc.Util.handleNewInstance(Util.java:408)    at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1137)    at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:356)    at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2504)    at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2541)    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2323)    at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:832)    at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46)    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)    at com.mysql.jdbc.Util.handleNewInstance(Util.java:408)    at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:417)    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:344)    at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)    at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:582)    at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1556)    at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1545)    ... 71 moreCaused by: java.net.UnknownHostException: saas.database: nodename nor servname provided, or not known    at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)    at java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:928)    at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1323)    at java.net.InetAddress.getAllByName0(InetAddress.java:1276)    at java.net.InetAddress.getAllByName(InetAddress.java:1192)    at java.net.InetAddress.getAllByName(InetAddress.java:1126)    at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:250)    at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:306)    ... 87 more

看到提示瞬間明白,因為本服務是其他服務改造的,本地配置沒有起作用,刪掉雲配置ok。

 

總結:單元測試很重要。現有服務改造的服務注意雲配置。

Could not get JDBC Connection--java

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.