Neo4jデータベースでGremlinを使用しています。ティンカーグラフデータベースをロードしてグレムリントラバーサルを実行することはできますが、ローカルデータベースをロードしてトラバーサルを実行することはできません。
コンソールのいじくり回すグラフから、次のコマンドを使用していますが、正常に機能します。
g = new TinkerGraph();
g.loadGraphXML('/db/data/graph-example-1.xml');
g.V.name this works fine and getting the expected results.
Javaコードからでも私はそれを行うことができます。私は次のように同じコマンドを送信します:
final String scriptURI = SERVER_ROOT_URI + "ext/GremlinPlugin/graphdb/execute_script";
WebResource resource = Client.create().resource(scriptURI);
String entity = toJsonNameValuePairCollection("script", " g = new TinkerGraph();g.loadGraphXML('/db/data/graph-example-1.xml');g.V.name");
ClientResponse response = resource.accept(MediaType.APPLICATION_JSON).type(MediaType.APPLICATION_JSON).entity(entity .post(ClientResponse.class);
しかし、「db / data /」で作成したハードディスクからデータにアクセスしようとすると、コンソールでは正常に機能しますが、Javaコードでは機能しません。
コンソールコマンド:
g = new Neo4jGraph('db / data /'); gVname
期待どおりの出力が得られます。
しかし、Javaコードを介して、次のエラーが発生します:javax.script.ScriptException:java.lang.RuntimeException:java.io.FileNotFoundException
私のJavaコードは次のとおりです。
最終的な文字列scriptURI=SERVER_ROOT_URI + "ext / GremlinPlugin /graphdb / execute_script"; WebResourceリソース=Client.create()。resource(scriptURI); 文字列エンティティ=toJsonNameValuePairCollection( "script"、 "g = new Neo4jGraph('db / data /'); gVname"); ClientResponse応答=resource.accept(MediaType.APPLICATION_JSON).type(MediaType.APPLICATION_JSON).entity(entity .post(ClientResponse.class);