1. 本来是用的是官方的demo进行学习配置的,结果都配置好以后莫名出现了下列错误
2018-03-05 16:59:30.603 [Druid-ConnectionPool-Create-1140697305] INFO com.alibaba.druid.pool.DruidDataSource - put physical connection to pool failed.
2018-03-05 16:59:30.622 [Druid-ConnectionPool-Create-1140697305] ERROR com.alibaba.druid.pool.DruidDataSource - create connection holder error
org.postgresql.util.PSQLException: 这个 ResultSet 已经被关闭。
at org.postgresql.jdbc2.AbstractJdbc2ResultSet.checkClosed(AbstractJdbc2ResultSet.java:2654)
at org.postgresql.jdbc2.AbstractJdbc2ResultSet.setFetchSize(AbstractJdbc2ResultSet.java:1771)
at org.postgresql.jdbc4.Jdbc4Statement.createResultSet(Jdbc4Statement.java:39)
at org.postgresql.jdbc2.AbstractJdbc2Statement$StatementResultHandler.handleResultRows(AbstractJdbc2Statement.java:211)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1773)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:512)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:374)
at org.postgresql.jdbc2.AbstractJdbc2Connection.execSQLUpdate(AbstractJdbc2Connection.java:263)
at org.postgresql.jdbc2.AbstractJdbc2Connection.getTransactionIsolation(AbstractJdbc2Connection.java:775)
at com.alibaba.druid.pool.DruidConnectionHolder.<init>(DruidConnectionHolder.java:144)
at com.alibaba.druid.pool.DruidConnectionHolder.<init>(DruidConnectionHolder.java:82)
at com.alibaba.druid.pool.DruidDataSource.put(DruidDataSource.java:1870)
at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2123)
上网查了一些,感觉讲的都和自己的不一致,所以把自己找到的原因分享出来
- 经初步排查可能是数据源配置问题,更换数据源为dbcp后问题解决。
- 但是这不是问题的根本.我用的是阿里的druid源
- 经过排查,最终发现是因为postgresql的jar包问题,我使用的是sharding官方推荐的9.1-901-1.jdbc4,后来改为了42.1.4后,运行成功
- 这个就是版本不支持的原因