Java 无法连接到本地存储

Java 无法连接到本地存储,java,tomcat,servlets,sesame,Java,Tomcat,Servlets,Sesame,我想在我的计算机上用tomcat和sesame2.7.3API在本地创建SPARQL端点,我遇到了一个问题。在我成功地在我的计算机上创建了一个本机数据存储之后,我想连接到该数据存储并在其上执行SPARQL查询,我用Java编写代码,我经常从Tomcat收到以下错误消息 例外情况 javax.servlet.ServletException:实例化servlet类com.jelly.web.RDFServlet时出错 org.apache.catalina.valves.ErrorReportVa

我想在我的计算机上用tomcat和sesame2.7.3API在本地创建SPARQL端点,我遇到了一个问题。在我成功地在我的计算机上创建了一个本机数据存储之后,我想连接到该数据存储并在其上执行SPARQL查询,我用Java编写代码,我经常从Tomcat收到以下错误消息

例外情况

javax.servlet.ServletException:实例化servlet类com.jelly.web.RDFServlet时出错
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
run(Thread.java:680)
根本原因

java.lang.NoClassDefFoundError:org/openrdf/repository/RepositoryException
java.lang.Class.getDeclaredConstructors0(本机方法)
privateGetDeclaredConstructors(Class.java:2437)
getConstructor0(Class.java:2747)
java.lang.Class.newInstance0(Class.java:328)
java.lang.Class.newInstance(Class.java:310)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
run(Thread.java:680)
根本原因

java.lang.ClassNotFoundException:org.openrdf.repository.RepositoryException
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
java.lang.Class.getDeclaredConstructors0(本机方法)
privateGetDeclaredConstructors(Class.java:2437)
getConstructor0(Class.java:2747)
java.lang.Class.newInstance0(Class.java:328)
java.lang.Class.newInstance(Class.java:310)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
run(Thread.java:680)
我的Servlet代码如下所示:

导入java.io.File;
导入java.io.IOException;
导入java.util.List;
导入javax.servlet.RequestDispatcher;
导入javax.servlet.ServletException;
导入javax.servlet.http.HttpServlet;
导入javax.servlet.http.HttpServletRequest;
导入javax.servlet.http.HttpServletResponse;
导入org.openrdf.repository.*;
导入org.openrdf.repository.config.RepositoryConfig;
导入org.openrdf.repository.config.RepositoryConfigException;
导入org.openrdf.repository.config.RepositoryImplConfig;
导入org.openrdf.repository.manager.LocalRepositoryManager;
导入org.openrdf.repository.sail.config.SailRepositoryConfig;
导入org.openrdf.sail.config.SailImplConfig;
导入org.openrdf.sail.nativerdf.config.NativeStoreConfig`
公共类RDFServlet扩展了HttpServlet{
公共RDFServlet(){
超级();
//TODO自动生成的构造函数存根
}
受保护的void doPost(HttpServletRequest请求、HttpServletResponse响应)引发ServletException、IOException{
//TODO自动生成的方法存根
字符串queryString=request.getParameter(“queryInput”);
//创建RDF模型
字符串DBDirectory=“/Users/ray/Documents/A04_Developer/12_PersonSearch/SesameDB”;
SailImplConfig backendConfig=new NativeStoreConfig();
RepositoryImplConfig repositoryTypeSpec=新的SailRepositoryConfig(backendConfig);
尝试
{
LocalRepositoryManager=newlocalrepositorymanager(新文件(DBDirectory));
manager.initialize();
字符串repositoryID=“personV0”;
RepositoryConfig=newrepositoryconfig(repositoryID,repositoryTypeSpec);
manager.addRepositoryConfig(config);
Repository repo=manager.getRepository(repositoryID);
RDF模型=新RDF模型(回购);
@抑制警告(“原始类型”)
列表解决方案=model.queryRDF(repo,queryString);
setAttribute(“rdf”,解决方案);
RequestDispatcher视图=request.getRequestDispatcher(“result.jsp”);
视图。转发(请求、响应);
}捕获(存储异常e)
{
//TODO自动生成的捕捉块
e、 printStackTrace();
}捕获(RepositoryConfigException e)
{
//TODO自动生成的捕捉块
e、 printStackTrace();
}
}
}

我真的被这搞糊涂了,有人能帮我吗?提前谢谢。我将.jar文件添加到我自己的/lib目录中,然后一切正常。

我将.jar文件添加到我自己的/lib目录中,然后一切正常。

最有可能的原因是程序的类路径中缺少Sesame库jar文件。我已成功地将所有.jar文件添加到/lib目录中,从而修复了它,不仅仅是构建类路径。@JeenBroekstra是的,我犯了一些错误。请将您的解决方案作为答案发布并接受它。这样,其他看这个问题的人将更容易看到解决方案是什么。最可能的原因是程序的类路径中缺少Sesame library jar文件。我通过将所有.jar文件添加到/