gpt4 book ai didi

java - 耶拿 TDB java.lang.ExceptionInInitializerError

转载 作者:搜寻专家 更新时间:2023-10-31 19:37:22 36 4
gpt4 key购买 nike

我正在使用 Jena TDB 加载 RDF 数据集并对它进行 SPARQL 查询。我正在使用以下 Maven 依赖项:

<dependency>
<groupId>org.apache.jena</groupId>
<artifactId>apache-jena-libs</artifactId>
<type>pom</type>
<version>3.0.1</version>
</dependency>

这是我尝试创建 TDB 数据集的 java 代码:

public void loadDirectory(String outputFile){      
Dataset dataset = TDBFactory.createDataset(directoryPath);
Model tdb = dataset.getDefaultModel();
FileManager.get().readModel(tdb, outputFile);
tdb.close();
dataset.close();
LOG.info("RDF dataset loaded to memory");
}

它在函数的第一行失败:TDBFactory.createDataset( directoryPath ) 并出现以下错误消息:

Exception in thread "main" java.lang.ExceptionInInitializerError
at org.sdw.model.JenaModel.loadDirectory(JenaModel.java:69)
at org.sdw.Main.main(Main.java:75)
Caused by: java.lang.NullPointerException
at org.apache.jena.tdb.sys.EnvTDB.processGlobalSystemProperties(EnvTDB.java:33)
at org.apache.jena.tdb.TDB.init(TDB.java:250)
at org.apache.jena.tdb.sys.InitTDB.start(InitTDB.java:29)
at org.apache.jena.system.JenaSystem.lambda$init$40(JenaSystem.java:114)
at java.util.ArrayList.forEach(ArrayList.java:1249)
at org.apache.jena.system.JenaSystem.forEach(JenaSystem.java:179)
at org.apache.jena.system.JenaSystem.forEach(JenaSystem.java:156)
at org.apache.jena.system.JenaSystem.init(JenaSystem.java:111)
at org.apache.jena.tdb.TDBFactory.<clinit>(TDBFactory.java:40)

最佳答案

POM 使用 shade 插件。它需要使用 ServicesResourceTransformer 转换器来管理服务文件 (META_INF/services/)。

将以下转换添加到您的 POM 文件中:

<transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />

参见 <transformers>例如:https://github.com/apache/jena/blob/master/jena-fuseki2/jena-fuseki-server/pom.xml

关于java - 耶拿 TDB java.lang.ExceptionInInitializerError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36755846/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com