以下代码在 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有关(我会对此发表评论,但我没有足够的声誉)