Sesame API调用抛出IOException

时间:2015-01-22 07:04:53

标签: tomcat java-ee netbeans sesame

我正在用Java编写程序以使用Sesame的服务,但是当我调用Login时:

@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 -

输入例外报告

消息

description服务器遇到内部错误(),导致无法完成此请求。

例外

java.io.IOException:http://localhost:8080/openrdf-sesame/servlets/login:Not Found

注意GlassFish Server Open Source Edition 3.1.1日志中提供了异常的完整堆栈跟踪及其根本原因。 GlassFish Server开源版3.1.1

1 个答案:

答案 0 :(得分:0)

我不确定您从哪里获得此代码示例,但是在芝麻2中不存在类SesameServiceSparqlqueryUnknownRepositoryException

您要么使用非常旧版本的Sesame(1.x,不再受支持,至少从2007年开始),或者您正在使用某些第三方包装程序库

确保您使用的是最新版本的Sesame(website上可以找到最新的稳定版本。)

连接到Sesame Server的正确/最新方式如下:

 // 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