Stardog:无法加载类[org.postgresql.Driver]

问题描述 投票:0回答:2

我正在尝试using virtual graphs的Stardog教程。

按照说明,我设置了$STARDOG_EXT环境变量。

JDBC设置

Stardog不附带JDBC驱动程序,因此您需要手动将包含RDBMS驱动程序的JAR文件复制到Stardog服务器的类路径。首选方式是通过将STARDOG_EXT环境变量设置为指向目录到Stardog安装目录之外,然后复制jar在那里存放文件:

$ export STARDOG_EXT=/opt/stardog/ext
$ mkdir $STARDOG_EXT
$ cp JDBC_JAR_FILE $STARDOG_EXT

我将JAR文件复制到上述位置,如下所示。

bilesh@vm-ubuntu:~$ echo $STARDOG_EXT 
/opt/stardog/ext

bilesh@vm-ubuntu:~$ cd $STARDOG_EXT

bilesh@vm-ubuntu:/opt/stardog/ext$ ls -la
total 916
drwxr-xr-x 2 root    root      4096 Feb 19 20:22 .
drwxr-xr-x 9 stardog stardog   4096 Feb 19 20:21 ..
-rw-r--r-- 1 stardog root    927447 Feb 19 20:22 postgresql-42.2.10.jar

但是尝试使用PostgreSQL创建虚拟图时出现错误Unable to load class: org.postgresql.Driver

bilesh@vm-ubuntu:~$ sudo /opt/stardog/stardog-server.sh start
Starting stardog
Starting Stardog server in background, see /var/opt/stardog//stardog.log for more information.

bilesh@vm-ubuntu:~$ cd Workspace/Stardog/pgsql_demo

bilesh@vm-ubuntu:~/Workspace/Stardog/pgsql_demo$ stardog-admin virtual add music.properties music_mappings.ttl
Unable to load class: org.postgresql.Driver from ClassLoader:sun.misc.Launcher$AppClassLoader@619a5dff;ClassLoader:java.net.URLClassLoader@3b63d1de

我的PostgreSQL属性文件(music.properties)和映射文件(music_mappings.ttl)位于-~/Workspace/Stardog/pgsql_demo

postgresql jdbc stardog knowledge-graph
2个回答
0
投票

为了使其正常工作,我将JAR文件(postgresql-42.2.10.jar)放置在$JAVA_HOME/jre/lib/ext/中并重新启动了服务器。

此后,我能够成功创建虚拟图。

不确定这是否是我今后必须要做的事情。


0
投票

使用包装时,您需要将STARDOG_EXT设置为其他值。如果仅在shell中进行设置,它将对守护程序环境不可见。在此处查看文档:https://www.stardog.com/docs/#_package_layout

此外,以这种方式安装时,您也应该使用systemd / systemctl启动服务器

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