芝麻 API 调用抛出 IOException
Sesame API call throwing an IOException
我正在 Java 中编写一个程序来使用 Sesame 的服务,但是当我调用登录时:
@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 -
输入异常报告
留言
说明服务器遇到内部错误 (),导致无法完成此请求。
异常
java.io.IOException: http://localhost:8080/openrdf-sesame/servlets/login: 未找到
注意 GlassFish Server 开源版 3.1.1 日志中提供了异常的完整堆栈跟踪及其根本原因。
GlassFish Server 开源版 3.1.1
我不确定你从哪里得到这个代码示例,但是 类 SesameService
、Sparqlquery
或 UnknownRepositoryException
在 Sesame 2 中不存在。
您使用的是 非常 旧版本的 Sesame(1.x,它不再受支持并且至少从 2007 年起就不再受支持),或者您是使用一些第三方包装器库。
确保您使用的是最新版本的 Sesame(最新的稳定版本可以在 website 上找到)。
correct/current连接芝麻服务器的方法如下:
// 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 的更多详细信息,请参阅 Sesame website, in particular the tutorial, the chapter "Programming with Sesame", and the API Javadoc.
上提供的文档
我正在 Java 中编写一个程序来使用 Sesame 的服务,但是当我调用登录时:
@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 -
输入异常报告
留言
说明服务器遇到内部错误 (),导致无法完成此请求。
异常
java.io.IOException: http://localhost:8080/openrdf-sesame/servlets/login: 未找到
注意 GlassFish Server 开源版 3.1.1 日志中提供了异常的完整堆栈跟踪及其根本原因。 GlassFish Server 开源版 3.1.1
我不确定你从哪里得到这个代码示例,但是 类 SesameService
、Sparqlquery
或 UnknownRepositoryException
在 Sesame 2 中不存在。
您使用的是 非常 旧版本的 Sesame(1.x,它不再受支持并且至少从 2007 年起就不再受支持),或者您是使用一些第三方包装器库。
确保您使用的是最新版本的 Sesame(最新的稳定版本可以在 website 上找到)。
correct/current连接芝麻服务器的方法如下:
// 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 的更多详细信息,请参阅 Sesame website, in particular the tutorial, the chapter "Programming with Sesame", and the API Javadoc.
上提供的文档