java - 我为 sparql 执行编写的代码是否正确?

标签 java logging sparql jena

我的代码:

package sample;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

import com.hp.hpl.jena.query.Query;
import com.hp.hpl.jena.query.QueryExecution;
import com.hp.hpl.jena.query.QueryExecutionFactory;
import com.hp.hpl.jena.query.QueryFactory;
import com.hp.hpl.jena.query.ResultSet;
import com.hp.hpl.jena.query.ResultSetFormatter;
import com.hp.hpl.jena.rdf.model.Model;
import com.hp.hpl.jena.rdf.model.ModelFactory;

public class QueryTest {

public static void main(String[] args) throws IOException {
    InputStream in = new FileInputStream(new File("foaf-ijd.rdf"));

    Model model = ModelFactory.createMemModelMaker().createDefaultModel();

    model.read(in, null);
    in.close();

    String queryString = "SELECT ?x WHERE (?x, <http://www.w3.org/2001/vcard-rdf/3.0#FN>, 'John Smith')";

    Query query = QueryFactory.create(queryString);

    QueryExecution qe = QueryExecutionFactory.create(query, model);
    ResultSet results = qe.execSelect();

    ResultSetFormatter.out(System.out, results, query);

    qe.close();

}

}

产生错误

Exception in thread "main" java.lang.NoSuchMethodError: org.slf4j.Logger.trace(Ljava/lang/String;)V
    at com.hp.hpl.jena.sparql.lib.SystemUtils.chooseClassLoader(SystemUtils.java:23)
    at com.hp.hpl.jena.sparql.lib.Metadata.init(Metadata.java:45)
    at com.hp.hpl.jena.sparql.lib.Metadata.get(Metadata.java:75)
    at com.hp.hpl.jena.query.ARQ.<clinit>(ARQ.java:253)
    at com.hp.hpl.jena.query.Query.<clinit>(Query.java:54)
    at com.hp.hpl.jena.query.QueryFactory.create(QueryFactory.java:71)
    at com.hp.hpl.jena.query.QueryFactory.create(QueryFactory.java:43)
    at com.hp.hpl.jena.query.QueryFactory.create(QueryFactory.java:31)
    at sample.QueryTest.main(QueryTest.java:29)

*

最佳答案

您的代码看起来没问题,您收到的错误来自 Jena 使用的库之一。您使用的是哪个版本的耶拿?您是否尝试过最新版本?您是否确保 Jena 下载的 lib/ 目录中的所有 .jar 都在您的 CLASSPATH 中?如果是这样,您是否检查过以确保您的 CLASSPATH 上没有多个冲突版本的 Jena(或 slf4j-*.jar)?

关于java - 我为 sparql 执行编写的代码是否正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5269114/

相关文章:

sparql - 如何在 SPARQL 查询(联合)中引用不同的存储库?

java - 如何让程序在按下按钮后返回ID?

logging - 带有 Go 日志包的默认格式的 PANIC

Python 'RequestsHandler' 对象没有属性 'filters'

Grails:用 logback 替换 log4j

sparql - 使用 SPARQL 确定特定三元组是否存在

R中的RDF整数

java - Azure Java Web App 将库添加到类路径

java - 使用 @MultipartConfig 的 Servlet 3.0 在使用 getPart() 时抛出异常

java - Eclipse jdk 11 问题 : The type java. lang.String 无法解决。它是从所需的 .class 文件间接引用的