postgresql - 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
.
解决方案
为了使其工作,我将 JAR 文件 ( postgresql-42.2.10.jar
) 放入$JAVA_HOME/jre/lib/ext/
并重新启动服务器。
之后,我能够成功创建虚拟图。
不确定这是否是我今后必须这样做的方式。
推荐阅读
- python-3.x - 行作为列行到二维数组中| Python
- python - Postgres(通过 sqlalchemy)不允许我替换表(如果存在)
- linux - 返回菜单选择文件是否相同
- html - SCSS - 在句子中间创建下划线的伪元素
- mysql - mysql 在 order by 上返回一个跳过的行,具有相同的日期和时间
- azure - 如何将 Application Insights 从一个区域迁移到另一个区域?
- c# - C# 无论如何要从 IQueryable 聚合(不是 AsEnumerable)
- python - 熊猫合并数据框从末尾移动新列
- python - 单个值的按位异或校验和?
- excel - 如何检查范围并将包含值的单元格复制到另一个单元格