Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java postgresql驱动程序9.4和Postgres安装9.6的UTF-8序列无效_Java_Postgresql_Jdbc_Osgi - Fatal编程技术网

Java postgresql驱动程序9.4和Postgres安装9.6的UTF-8序列无效

Java postgresql驱动程序9.4和Postgres安装9.6的UTF-8序列无效,java,postgresql,jdbc,osgi,Java,Postgresql,Jdbc,Osgi,我已经安装了最新的PostgreSQL版本:9.6 我使用的是postgresql驱动程序版本9.4-1206-jdbc42——在maven存储库中找不到更新的 当我尝试连接时,会出现异常: Caused by: java.io.IOException: Ungültige UTF-8-Sequenz: das erste Byte ist 10xxxxxx: 179 at org.postgresql.core.UTF8Encoding.decode(UTF8Encoding.java

我已经安装了最新的PostgreSQL版本:9.6

我使用的是postgresql驱动程序版本9.4-1206-jdbc42——在maven存储库中找不到更新的

当我尝试连接时,会出现异常:

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配置文件进行配置:

osgi.jdbc.driver.class=org.postgresql.Driver
url=jdbc:postgresql://localhost:5432/test
dataSourceName=test
user=test
password=test
protocolVersion=3
这里怎么了?这是驱动程序版本和数据库安装之间的不兼容吗?我应该降级吗

数据库使用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();

所以它看起来更像是和平问题…

实际问题在其他地方。在pg_hba.conf中将授权方法从'md5'更改为'trust'后,我得到了真正的错误消息:找不到角色“test”


PAX在用户名后面加了尾随空格,这很容易监督,PostgreSQL驱动程序无法解码来自服务器的错误消息。

9.4-1206-jdbc42
没有那么旧,但最近的是(postgresql jdbc驱动程序在版本编号上跳了很多,以避免这样的误解:9.4应该支持9.6服务器)——而且,它现在已经有2天了:)