Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Servlet中的Neo4j数据库_Java_Html_Servlets_Neo4j - Fatal编程技术网

Java Servlet中的Neo4j数据库

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(

我有一个servlet,希望连接到Neo4j数据库。这样我就可以通过互联网从我的应用程序访问数据库。 但是servlet给出了一个错误? 我做错什么了吗

这是我的servlet代码

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,否则可能会导致依赖冲突。