0

在最初的几周里,我一直在和 Jena 一起工作。但是,今天tomcat已经开始吐出错误。

我想我已经把它缩小到:

Caused by: com.hp.hpl.jena.shared.JenaException: Invalid properties file
at com.hp.hpl.jena.util.Metadata.read(Metadata.java:71)
at com.hp.hpl.jena.util.Metadata.addMetadata(Metadata.java:41)
at com.hp.hpl.jena.util.Metadata.<init>(Metadata.java:35)
at com.hp.hpl.jena.JenaRuntime.<clinit>(JenaRuntime.java:25)

虽然,我无法弄清楚它意味着哪个属性文件。我从来没有为jena 配置过属性文件。我能想到的唯一需要解析的是我的 web.xml,它看起来没有错。

导致错误的代码是:

public void getOntModel()
{
    try
    {
        ssn = ModelFactory.createOntologyModel();
        ssn.read(NS);
    }
    catch(Exception ex)
    {
        ex.printStackTrace();
        System.out.println("[ONTOLOGY] Failed to read ontology file");
    }
    System.out.println("[ONTOLOGY] Ontology successfully read");
}

具体来说:

ssn = ModelFactory.createOntologyModel();
4

1 回答 1

0

看源码:

这是正在发生的事情:

 private static String metadataLocation = "com/hp/hpl/jena/jena-properties.xml" ;
 private static Metadata metadata = new Metadata(metadataLocation) ;

似乎它正在尝试加载由 metadataLocation 指定的资源。你能检查你的类路径是否正确吗?特别是,检查是否没有 Jena 库的混合版本 - 如果有,请重新排序它们,以便最新的在您的类路径前面。

如果在某些类 Unix 系统上,您可以使用:

find /path/to/lib -name "*.jar"|while read fn; do
   echo ---- $fn
   jar tf $fn|grep jena-properties.xml
done

找到包含该属性文件的 jar - 只需更改/path/to/lib您的 Jena 库所在的路径即可。

于 2010-12-04T15:34:45.263 回答