0

Apache Jena の Web サイトから基本的な RDF を作成するための基本的なチュートリアルに従おうとしていました。

String personURI = "http://somewhere/JohnSmith";
String fullName = "John Smith";

Model model = ModelFactory.createDefaultModel();
Resource johnSmith = model.createResource(personURI);

johnSmith.addProperty(VCARD.FN, fullName);

3.0.1 Jena 依存関係を pom.xml に追加し、コードを実行すると、例外が出力されることがわかりました。

Exception in thread "main" java.lang.NoSuchMethodError: org.apache.jena.atlas.lib.Cache.getIfPresent(Ljava/lang/Object;)Ljava/lang/Object;
  at org.apache.jena.enhanced.EnhGraph.getNodeAs(EnhGraph.java:133)
  at org.apache.jena.rdf.model.impl.IteratorFactory.asResource(IteratorFactory.java:71)
  at org.apache.jena.rdf.model.impl.IteratorFactory.asResource(IteratorFactory.java:62)
  at org.apache.jena.rdf.model.impl.ModelCom.getResource(ModelCom.java:888)
  at org.apache.jena.rdf.model.impl.ModelCom.createResource(ModelCom.java:1338)
  at com.lymba.proposal.summarizer.core.rdf.TestRdf.testRdf(TestRdf.java:15)
  at com.lymba.proposal.summarizer.core.rdf.TestRdf.main(TestRdf.java:21)

基本的な例でこの出力が得られるのはなぜですか? チュートリアルから直接コピーされます。

4

1 に答える 1

0

これは、依存関係に関連する問題であることが判明しました。jena-usersメーリングリストから見つけたいくつかの情報に基づいて、それは私のクラスパスで見つかったさまざまなバージョンのJeanに関係していました.

Eclipse で依存関係の階層を確認したところ、別の依存関係によって Jean 2.13.0 が取り込まれていることがわかりました。Jean 2.13.0 アーティファクトの除外を pom に追加したところ、チュートリアルは期待どおりに機能しました。

于 2015-12-15T18:18:01.827 に答える