HttpException: 500 при выполнении запроса SPARQL на удаленной конечной точке

1

Я очень новичок в программировании Semantic Web. Я узнал о том, как писать код Java для запроса конечной точки SPARQL с использованием API Jena.

Вот мой код Java:

public class TestJena 
{
public static void main (String[] args)
{
    String queryString = "prefix owl: <http://www.w3.org/2002/07/owl#>" +
                        "select ?class where { " + 
                        " ?class a owl:Class } ";
    String endpoint = "http://localhost:8890/sparql";

    Query query = QueryFactory.create(queryString, Syntax.syntaxARQ);

    query.setOffset(1);

    QueryExecution qe = QueryExecutionFactory.sparqlService(endpoint, query);

    try
    {
        ResultSet resultSet = qe.execSelect();
        StringBuffer results = new StringBuffer();
        List<String> columnNames = resultSet.getResultVars();

        while(resultSet.hasNext())
        {
            QuerySolution solution = resultSet.next();

            for(String var : columnNames)
            {
                results.append(var + ":");

                if (solution.get(var) == null)
                    results.append("{null}");
                else if (solution.get(var).isLiteral())
                    results.append(solution.getLiteral(var).toString());
                else
                    results.append(solution.getResource(var).getURI());
                results.append('\n');
            }
            results.append("----------\n");
        }
        System.out.print("Results are : "+results.toString());
    }
    finally
    {
        qe.close();
    }
}
}

Когда я запускаю запрос, я получаю следующие исключения:

Exception in thread "main" HttpException: 500
at com.hp.hpl.jena.sparql.engine.http.HttpQuery.rewrap(HttpQuery.java:414)
at com.hp.hpl.jena.sparql.engine.http.HttpQuery.execGet(HttpQuery.java:358)
at com.hp.hpl.jena.sparql.engine.http.HttpQuery.exec(HttpQuery.java:295)
at com.hp.hpl.jena.sparql.engine.http.QueryEngineHTTP.execResultSetInner(QueryEngineHTTP.java:346)
at com.hp.hpl.jena.sparql.engine.http.QueryEngineHTTP.execSelect(QueryEngineHTTP.java:338)
at com.TestJena.example.TestJena.main(TestJena.java:31)

Когда я запускаю указанный выше запрос в конечной точке http://localhost:8890/sparql, он работает нормально.

Может ли кто-нибудь сказать мне, где проблема? Почему это бросает HttpException: 500?

Благодарю!

Теги:
jena
sparql
endpoint

1 ответ

0

Конечная точка возвращает код ошибки HTTP 500 (сбой внутреннего сервера). Клиентский код выглядит просто отлично, возможно, работает с старой версией Jena, потому что обычно печатает больше деталей (если удаленный конец предоставляет какие-либо).

Когда вы используете http://localhost: 8890/sparql, который предположительно является формой HTML, а не конечной точкой SPARQL. Для этого могут потребоваться дополнительные параметры - см. Документацию для этого сервера.

  • 0
    Я очень новичок в семантической паутине. Я не понимаю, что вы сказали. Почему это дает HttpException?
  • 0
    Поскольку запрашиваемая система возвращает ошибку HTTP 500. Код, который вы показываете, просто сообщает об этом.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню