1

我正在尝试在 PostgreSQL-9.5 上安装 PL/Java。我当前的服务器是 Ubuntu 16.04。我安装PL/Java的参考链接是官网:https ://tada.github.io/pljava/install/install.html

如链接https://tada.github.io/pljava/build/build.html中所述,PL/Java 的构建过程运行良好。

当我运行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 Installer output

/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
4

1 回答 1

0

另一个老问题,回答只是为了让未来的访问者能找到一些东西。

在这个问题中,正在构建的 PL/Java 版本是一个未发布的版本(1.6.0-SNAPSHOT),根本不包括当时支持 PostgreSQL 9.5 的更改。

快照版本,以及从master(开发)分支构建的任何东西,都是移动目标,可能离发布很远,不能工作,让你的房子着火等等。推荐的做法是检查发布页面并选择最近的官方发布。

如果它将在 Ubuntu 或 Debian 上使用,而不是从源代码构建,添加PGDGapt存储库通常更简单apt-get install postgresql-9.5-pljava(或您的 PostgreSQL 版本代替 9.5)。

于 2020-05-12T03:53:32.463 回答