2

サーブレットがあり、Neo4j データベースに接続したいと考えています。インターネット経由でアプリケーションからデータベースにアクセスできるようにします。しかし、サーブレットはエラーを出しますか? 私は何か間違ったことをしていますか?

これが私のサーブレットコードです。

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");
}

これは、Web ページで返されるエラーです。

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)
4

3 に答える 3

4

Neo4j の REST API を使用する必要があります。これは、インターネット経由でアクセスしている場合 (プログラムに組み込まれていない場合)、Neo4j を使用する標準的な方法です。

REST API を持つサーバーとして Neo4j をセットアップする方法を示すこのチュートリアルに従うことをお勧めします。

個人的には、Java に埋め込んで使用する方がはるかに簡単だと思います。組み込み Java データベースとして作成する場合は、次のようにする必要があります。

GraphDatabaseService dbService = new EmbeddedGraphDatabase(DB_PATH);

ただし、プログラムの起動時に一度だけ実行する必要があります。したがって、プログラムの起動時にそれをインスタンス化し、静的参照を使用するだけです。(または、さらに良いことに、Spring を使用して、必要な場所で Neo4jOperations を自動配線します。または、Spring Data Neo4jを使用するのが最善です!)

于 2013-03-24T07:34:42.800 に答える
2

解決しました!!! Tomcat 7.0\lib に Neo4j JAR ファイルをコピーしたところ、問題は完全に解決しました!!!

于 2013-03-25T07:33:11.960 に答える
0

同じ問題がありました。手順は次のとおりです-ビルドパスに移動->ビルドパスを構成し、展開アセンブリを選択しますそこにIvy(maven)ライブラリがあることを確認してください。add->Java build path entries->ivy(またはmaven)で追加しない場合

外部で (ivy/maven ではなく) neo4j ライブラリを追加した場合は、そのライブラリを展開アセンブリに追加します。それは問題を解決するはずです

于 2014-11-27T08:51:26.960 に答える