首页 > 解决方案 > Stardog:无法加载类 [org.postgresql.Driver]

问题描述

我正在尝试按照 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

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

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.

标签: postgresqljdbcstardogknowledge-graph

解决方案


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

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

不确定这是否是我今后必须这样做的方式。


推荐阅读