0
我已經安裝了最新版本的PostgreSQL:9.6無效UTF-8序列與PostgreSQL驅動9.4和Postgres安裝9.6
我使用PostgreSQL驅動程序版本9.4-1206-jdbc42 - 我無法找到Maven倉庫更新。
當我嘗試連接時,我得到一個異常:
osgi.jdbc.driver.class=org.postgresql.Driver
url=jdbc:postgresql://localhost:5432/test
dataSourceName=test
user=test
password=test
protocolVersion=3
什麼是錯在這裏:
Caused by: java.io.IOException: Ungültige UTF-8-Sequenz: das erste Byte ist 10xxxxxx: 179
at org.postgresql.core.UTF8Encoding.decode(UTF8Encoding.java:98)
at org.postgresql.core.PGStream.ReceiveString(PGStream.java:327)
at org.postgresql.core.v3.ConnectionFactoryImpl.doAuthentication(ConnectionFactoryImpl.java:424)
at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:203)
... 49 more
的應用程序部署在OSGi容器,數據源使用PAX配置文件配置?這是驅動程序版本和數據庫安裝之間的不兼容性嗎?我應該降級嗎?
該數據庫使用編碼UTF-8。
在獨立Java應用程序,下面的代碼是成功的:
ConnectionPool pool = new ConnectionPool();
pool.setUrl("jdbc:postgresql://localhost:5432/test");
pool.setUser("test");
pool.setPassword("test");
pool.setProtocolVersion(3);
Connection conn = pool.getConnection();
所以它看起來更像PAX問題......
'9.4-1206-jdbc42'不是那麼古老,但最近的是['42.0.0'](https://jdbc.postgresql.org)[在maven central](https:// search .maven.org /#artifactdetails%7Corg.postgresql%7Cpostgresql%7C42.0.0.jre7%7Cbundle)(postgresql jdbc驅動程序在版本編號方面跳了很多以避免這種誤解:9.4應該支持9.6服務器) - 同樣,它也是2日齡現在:) – pozs