【发布时间】:2017-05-05 06:53:33
【问题描述】:
在 Blazegraph 中,我尝试了以下查询:
INSERT DATA {
<http://my.site/User/instances/1>
:comment
<http://my.site/Comment/instances/16>.
}
它会崩溃并出现以下异常跟踪:
java.lang.NoSuchMethodError: com.bigdata.rdf.sail.sparql.SPARQLStarUpdateDataBlockParser.read()I
at com.bigdata.rdf.sail.sparql.SPARQLStarUpdateDataBlockParser.checkSparqlStarSyntax(SPARQLStarUpdateDataBlockParser.java:107)
at com.bigdata.rdf.sail.sparql.SPARQLStarUpdateDataBlockParser.parseValue(SPARQLStarUpdateDataBlockParser.java:100)
at org.openrdf.rio.trig.TriGParser.parseGraph(TriGParser.java:158)
at org.openrdf.repository.sail.helpers.SPARQLUpdateDataBlockParser.parseGraph(SPARQLUpdateDataBlockParser.java:87)
at org.openrdf.rio.trig.TriGParser.parseStatement(TriGParser.java:128)
at org.openrdf.rio.turtle.TurtleParser.parse(TurtleParser.java:214)
at com.bigdata.rdf.sail.sparql.UpdateExprBuilder.doUnparsedQuadsDataBlock(UpdateExprBuilder.java:746)
at com.bigdata.rdf.sail.sparql.UpdateExprBuilder.visit(UpdateExprBuilder.java:161)
at com.bigdata.rdf.sail.sparql.UpdateExprBuilder.visit(UpdateExprBuilder.java:119)
at com.bigdata.rdf.sail.sparql.ast.ASTInsertData.jjtAccept(ASTInsertData.java:23)
at com.bigdata.rdf.sail.sparql.Bigdata2ASTSPARQLParser.parseUpdate2(Bigdata2ASTSPARQLParser.java:289)
at com.bigdata.rdf.sail.BigdataSailRepositoryConnection.prepareNativeSPARQLUpdate(BigdataSailRepositoryConnection.java:278)
at com.bigdata.rdf.sail.BigdataSailRepositoryConnection.prepareUpdate(BigdataSailRepositoryConnection.java:182)
at org.openrdf.repository.base.RepositoryConnectionBase.prepareUpdate(RepositoryConnectionBase.java:180)
但是正常的DELETE INSERT WHERE 查询工作正常。
有什么解决办法吗?
【问题讨论】:
-
java.lang.NoSuchMethodError通常表示您的项目中有同一个库的多个版本。请检查类路径中的*.jar文件。 -
不,我确实检查过没有倍数:我的 build.gradle 中只有一个与唯一相关依赖库相关的条目:
compile group: 'com.blazegraph', name: 'bigdata-core', version: '2.1.4'就是这样。在我的任何依赖项中,都没有其他与大数据或 blazegraph 相关的内容。因此,它应该可以正常工作。 -
好吧,我确定存在冲突。例如,您使用的是 OpenRDF Sesame,对吗?而且我猜 Blazegraph 支持的版本和您正在使用的版本之间存在冲突。 Blazegraph 2.1.4 使用 Sesame 2.7.12(请参阅 central.maven.org/maven2/com/blazegraph/blazegraph-parent/2.1.4/…) - 您可能使用的是其他版本
-
好的,谢谢,我将更改我的 Sesame 版本以匹配 2.7.12,看看它是否有效。你是这个意思吗?我一试过就会通知你。
-
有效!你是个明星。如果您可以提出答案,我会投票并将其标记为已回答。我使用的是芝麻 2.8.6。虽然类路径中没有多个芝麻罐(只有 2.8.6),但将 2.8.6 更改为 2.7.12 解决了这个问题。完全删除 sesame-runtime 的 gradle 条目也解决了这个问题,因为 bigdata-core 包含 sesame-runtime,所以我已经这样做了。谢谢!
标签: sparql blazegraph