2015-01-22 2 views
0

Я пишу программу в Java, чтобы потреблять услуги Сезам, но когда я звоню Логин:Сезам API вызов бросать IOException

@Override 
protected void doPost(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException {   
    try { 

    URL sesameurl = new URL("http://localhost:8080/openrdf-sesame"); 
    SesameService service = Sesame.getService(sesameurl);   
     service.login("username", "password"); 
     service.getRepositoryList();    
       } 
    catch (UnknownRepositoryException ex) { 
     Logger.getLogger(Sparqlquery.class.getName()).log(Level.SEVERE, null, ex); 
    } catch (ConfigurationException ex) { 
     Logger.getLogger(Sparqlquery.class.getName()).log(Level.SEVERE, null, ex); 
    }  catch (AccessDeniedException ex) { 
     Logger.getLogger(Sparqlquery.class.getName()).log(Level.SEVERE, null, ex); 
    }  
    PrintWriter write = response.getWriter();   
} 

он выдает следующее сообщение об ошибке:

HTTP Status 500 - 

типа Exception сообщить

сообщение

DescriptionThe сервер обнаружил внутреннюю ошибку(), которые предотвращают это от выполнения этого запроса.

исключение

java.io.IOException: http://localhost:8080/openrdf-sesame/servlets/login: Не найдено

нота Полный стек следы исключения и его коренные причины доступны в журналах GlassFish сервер Open Source Edition 3.1.1. GlassFish сервер Open Source Edition 3.1.1

+0

Показать код, пожалуйста. –

+0

«Соответствующий код» Я имею в виду ту часть, где вы создаете и инициализируете объект репозитория Sesame. Также: можете ли вы показать полный стек исключения? Пожалуйста, отредактируйте свой вопрос] (http://stackoverflow.com/posts/28083009/edit), чтобы добавить эти данные. –

+0

Кстати, поскольку вы относительно новичок здесь: я заметил, что вы задали несколько вопросов, но никогда не одобряли и/или не принимали ни один из ответов, которые вам дали. Конечно, это не требуется, но это хороший способ поблагодарить кого-то, если их ответ был полезным для вас. Взгляните на это: [Что делать, если кто-то отвечает на мой вопрос?] (Http://stackoverflow.com/help/someone-answers) –

ответ

0

Я не знаю, где вы получили этот пример кода из, но классы SesameService, Sparqlquery или UnknownRepositoryException не существуют в Сезам 2.

Вы либо с помощью очень старая версия Sesame (1.x, которая больше не поддерживается и не была, по крайней мере, с 2007 года), или вы используете некоторую стороннюю библиотеку-оболочку.

Убедитесь, что вы используете последнюю версию Sesame (последний стабильный выпуск можно найти на website).

правильный/текущий способ подключения к серверу Сезам выглядит следующим образом:

// connect to the server 
String serverUrl = "http://localhost:8080/openrdf-sesame"; 
RepositoryManager manager = RepositoryProvider.getRepositoryManager(serverUrl); 

// get a list of the ids of all existing repositories 
List<String> ids = manager.getRepositoryIDs(); 

// open a repository with a known identifier, e.g. "test" 
Repository rep = manager.getRepository("test"); 

И так далее. Подробнее о том, как работать с кунжутом, см. В документации, имеющейся на Sesame website, в частности, tutorial, глава "Programming with Sesame" и API Javadoc.