使用FileManager加载资源在Jena 2.10.1中不起作用

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

以下代码在Jena 2.10.0中有效,但在Jena 2.10.1中失败:

model = FileManager.get().loadModel(uri, base, "RDF/XML");

堆栈跟踪为:

com.hp.hpl.jena.n3.turtle.ParserTurtle.parse(ParserTurtle.java:67), 
com.hp.hpl.jena.n3.turtle.TurtleReader.readWorker(TurtleReader.java:33), 
com.hp.hpl.jena.n3.JenaReaderBase.readImpl(JenaReaderBase.java:116), 
com.hp.hpl.jena.n3.JenaReaderBase.read(JenaReaderBase.java:81), 
com.hp.hpl.jena.rdf.model.impl.ModelCom.read(ModelCom.java:274), 
com.hp.hpl.jena.util.LocationMapper.initFromPath(LocationMapper.java:158), 
com.hp.hpl.jena.util.LocationMapper.get(LocationMapper.java:71), 
com.hp.hpl.jena.util.FileManager.makeGlobal(FileManager.java:122), 
com.hp.hpl.jena.util.FileManager.get(FileManager.java:88), 
...

据我所调试,在某个静态块中,ParserTurtle类的初始化中有一个NPE。但是,确切的位置没有出现在堆栈跟踪中,我无法通过自己初始化此类来重现它。

修复是最好的,但是对于在Jena 2.10.1中如何使用FileManager的任何提示,我将不胜感激。我需要FileManager来加载location-mapping.n3文件。


这与https://stackoverflow.com/questions/16196069/jena-filemanager-readmodel-cannot-find-file(我会对此发表评论,但我的信誉不足)

java jena
2个回答
0
投票

经过进一步调试后,发现在2.10.0中有效但在2.10.1中无效的实际代码与初始化LocationMapper有关,请参见http://issues.apache.org/jira/browse/JENA-505。我在那里附了一个说明问题的最小示例。

实际错误仅通过警告消息表示:

2013.08.09 14:21:00 [main] LocationMapper WARN: Error in configuration file: null

但是如果以后尝试加载在位置映射器中映射的文件,则可能会出现类似于]的错误>

com.hp.hpl.jena.shared.NotFoundException: Not found: (...)

这就是为什么我将此问题与16196069相关。


0
投票

我通过加载IRI而不是URI来解决它。以下示例:

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