当前位置: 首页 > 知识库问答 >
问题:

Jena TDB java.lang.ExceptionInInitializerError

太叔烨霖
2023-03-14
<dependency>
    <groupId>org.apache.jena</groupId>
    <artifactId>apache-jena-libs</artifactId>
    <type>pom</type>
    <version>3.0.1</version>
</dependency>
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)

共有1个答案

劳英华
2023-03-14

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

将以下转换后的内容添加到POM文件:

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

请参阅此处的 ,例如:https://github.com/apache/jena/blob/master/jena-fuseki2/jena-fuseki-server/pom.xml

 类似资料:

相关问答

相关文章

相关阅读