【问题标题】:PL/Java - user function execution errorPL/Java - 用户函数执行错误
【发布时间】:2013-01-15 04:00:30
【问题描述】:

我在 Ubuntu 上安装了 pl/java:

sudo apt-get install postgresql-9.1-pljava-gcj

但是遇到了一个问题,我认为这是 jar 和 pl/java 之间的 gcj/jdk 1.7 不兼容。这些是在http://www.javacodegeeks.com/2012/10/introduction-to-postgresql-pljava.html 的指导下使用的步骤:

select sqlj.install_jar('file:///home/me/temp/testJar.jar', 'sandbox', true);

select sqlj.set_classpath('public', 'sandbox');

CREATE FUNCTION public.hello(varchar) RETURNS varchar
AS 'sandbox.PLJava.hello'
LANGUAGE java;

我们很高兴直到执行:

SELECT hello('world');

产生此错误的原因:

错误:java.lang.ClassFormatError:sandbox.PLJava(无法识别的类文件版本) SQL状态:XX000

jar 是使用标准 eclipse/export to jar (jdk 1.7.0) 制作的。

以前有人走过这条路吗?提前致谢。

【问题讨论】:

  • 你的 java 代码在 PostgreSQL 之外工作吗?

标签: postgresql pljava


【解决方案1】:

正如您所说,此问题是由您通过 pl/java 运行的 JVM 与您的 java 代码之间的不兼容引起的。因此,如果您从 repos 运行所有内容并且您可以跟进您的发行版或从源代码编译,这就是一个打包问题。

如果你可以从源代码编译,那可能是目前最好的选择。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多