Java Servlet中的Neo4j数据库
我有一个servlet,希望连接到Neo4j数据库。这样我就可以通过互联网从我的应用程序访问数据库。 但是servlet给出了一个错误? 我做错什么了吗 这是我的servlet代码Java Servlet中的Neo4j数据库,java,html,servlets,neo4j,Java,Html,Servlets,Neo4j,我有一个servlet,希望连接到Neo4j数据库。这样我就可以通过互联网从我的应用程序访问数据库。 但是servlet给出了一个错误? 我做错什么了吗 这是我的servlet代码 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
out.println("Hello World");
GraphDatabaseService graphDB = new GraphDatabaseFactory().newEmbeddedDatabase("C:\\Users\\Sourav\\Desktop\\db1");
}
这是网页中返回的错误
HTTP Status 500 - Servlet execution threw an exception
type Exception report
message Servlet execution threw an exception
description The server encountered an internal error that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: Servlet execution threw an exception
root cause
java.lang.NoClassDefFoundError: org/neo4j/graphdb/factory/GraphDatabaseFactory
hello.hello.doGet(hello.java:45)
javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
您需要使用Neo4j的RESTAPI。如果您是通过internet访问Neo4j(而不是嵌入到您的程序中),这是使用Neo4j的标准方法 您将希望了解如何将Neo4j设置为具有RESTAPI的服务器 就我个人而言,我认为在Java中使用它要容易得多。如果要将其创建为嵌入式Java数据库,则应执行以下操作:
GraphDatabaseService dbService = new EmbeddedGraphDatabase(DB_PATH);
但是,您应该在程序启动时只执行一次。所以在程序启动时实例化它,只需使用对它的静态引用。(或者更好的方法是,在需要的地方使用Spring和autowire Neo4jo操作。或者最好的方法是使用!)解决!!!
我在Tomcat7.0\lib中复制了Neo4JJAR文件,它完全解决了问题 我也有同样的问题。以下是步骤- 转到构建路径->配置构建路径 选择部署程序集 确保你有常春藤(maven)图书馆在那里。如果没有,请通过add->java构建路径条目->ivy(或maven)添加它 如果您已经在外部(不是通过ivy/maven)添加了neo4j库,那么在部署程序集中添加该库。
它应该可以解决问题根据您的日志,GraphDatabaseFactory类找不到,您是否将内核jar添加到构建路径是的,我添加了neo4j-kernel-1.8.2.jar另一个有趣的事情是,我在java文件中有工作的数据库代码。现在,当我在servlet中创建该类的对象时,它仍然会给出一个错误。我正在把这个物体放进箱子里()。是吗?我也不知道为什么,通常我使用Spring neo。所以@CorayThan你说Spring Data Neo4j是一个不错的选择。我得调查一下。我尝试使用RESTAPI,但TraversalDescription存在问题。1.81中的实现已更改。因此我们无法实例化TraversalDescription。到目前为止,我一直喜欢Spring数据Neo4j。它有一些限制(没有内置的延迟加载),但它仍然为我节省了不少工作。在使用REST服务器时,使用restraversal.description()而不是TraversalDescription,还可以查看java REST绑定:因此找到了一种解决方法。但这并没有真正解决问题。您的应用程序不能简单地移动到另一个应用程序服务器。您是否使用maven作为构建工具?如果是这样,请尝试添加org.neo4j.neo4j依赖项,该依赖项包含多个包,包括您需要的包。此外,如果这样做,请从tomcat中删除jar,否则可能会导致依赖冲突。