如何在Postgresql-9.5上安装PLJava时解决 "SPI_ERROR_UNCONNECTED "错误?

问题描述 投票:1回答:1

我试图在PostgreSQL-9.5上安装PLJava。我目前的服务器是Ubuntu 16.04。我安装PLJava的参考链接是官方网站。https:/tada.github.iopljavainstallinstall.html。

PLJava的构建过程,如链接中所述。https:/tada.github.iopljavabuildbuild.html。 工作正常。

当我运行 mvn clean install 的输出是。maven输出

[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] 
[INFO] PostgreSQL PL/Java ................................. SUCCESS [  1.049 s]
[INFO] PL/Java API ........................................ SUCCESS [  2.499 s]
[INFO] PL/Java backend Java code .......................... SUCCESS [  1.574 s]
[INFO] PL/Java backend native code ........................ SUCCESS [ 17.971 s]
[INFO] PL/Java Ant tasks .................................. SUCCESS [  0.179 s]
[INFO] PL/Java examples ................................... SUCCESS [  0.747 s]
[INFO] PL/Java packaging .................................. SUCCESS [  0.736 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 25.420 s
[INFO] Finished at: 2019-06-21T01:31:58-07:00
[INFO] Final Memory: 47M/576M
[INFO] ------------------------------------------------------------------------

当我运行自解压安装程序JAR时,输出的结果是。JAR安装程序输出

/usr/lib/postgresql/9.5/lib/libpljava-so-1.6.0-SNAPSHOT.so as bytes
/usr/share/postgresql/9.5/pljava/pljava-1.6.0-SNAPSHOT.jar as bytes
/usr/share/postgresql/9.5/pljava/pljava-api-1.6.0-SNAPSHOT.jar as bytes
/usr/share/postgresql/9.5/pljava/pljava-examples-1.6.0-SNAPSHOT.jar as bytes
/usr/share/postgresql/9.5/extension/pljava.control as lines (ASCII)
/usr/share/postgresql/9.5/pljava/pljava--1.6.0-SNAPSHOT.sql as lines (UTF8)
/usr/share/postgresql/9.5/pljava/pljava--unpackaged--1.6.0-SNAPSHOT.sql as lines (UTF8)
/usr/share/postgresql/9.5/pljava/pljava--1.5.2--1.6.0-SNAPSHOT.sql as lines (UTF8)
/usr/share/postgresql/9.5/pljava/pljava--1.5.1--1.6.0-SNAPSHOT.sql as lines (UTF8)
/usr/share/postgresql/9.5/pljava/pljava--1.5.1-BETA3--1.6.0-SNAPSHOT.sql as lines (UTF8)
/usr/share/postgresql/9.5/pljava/pljava--1.5.1-BETA2--1.6.0-SNAPSHOT.sql as lines (UTF8)
/usr/share/postgresql/9.5/pljava/pljava--1.5.1-BETA1--1.6.0-SNAPSHOT.sql as lines (UTF8)
/usr/share/postgresql/9.5/pljava/pljava--1.5.0--1.6.0-SNAPSHOT.sql as lines (UTF8)
/usr/share/postgresql/9.5/pljava/pljava--1.5.0-BETA3--1.6.0-SNAPSHOT.sql as lines (UTF8)
/usr/share/postgresql/9.5/pljava/pljava--1.5.0-BETA2--1.6.0-SNAPSHOT.sql as lines (UTF8)
/usr/share/postgresql/9.5/pljava/pljava--1.5.0-BETA1--1.6.0-SNAPSHOT.sql as lines (UTF8)

我也明确地设置了libjvm_location。libjvm_location set

postgres=# alter system set pljava.libjvm_location to '/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server/libjvm.so';
ALTER SYSTEM
postgres=#

当我运行 CREATE EXTENSION pljava我得到以下错误信息。

postgres=# CREATE EXTENSION pljava;
ERROR:  java.sql.SQLException: SPI function SPI_prepare failed with error SPI_ERROR_UNCONNECTED
postgresql-9.5 pljava
1个回答
0
投票

又是一个老问题了,回答一下,正好让以后的访客有所发现。

在这个问题中,正在构建的PLJava版本是一个未发布的版本(1.6.0-SNAPSHOT),根本没有包含当时支持PostgreSQL 9.5的变化。

快照版本,以及任何从 master (开发)分支,是移动的目标,可能距离发布,不能用,放火烧你的房子等。推荐的做法是检查 发布页 并选择一个最近的官方版本。

如果要在Ubuntu或Debian上使用,比起从源码开始编译,通常更简单的做法是在源代码中加入 PGDG apt 贮藏室 而只是 apt-get install postgresql-9.5-pljava (或你的PostgreSQL版本代替9.5)。

© www.soinside.com 2019 - 2024. All rights reserved.