Я использую Gremlin над базой данных 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 = новый Neo4jGraph ('db / data /');
г.В.Имя
Я получаю ожидаемый результат.
Но через код Java я получаю следующую ошибку: javax.script.ScriptException: java.lang.RuntimeException: java.io.FileNotFoundException
мой код Java:
final String scriptURI = SERVER_ROOT_URI + "ext / GremlinPlugin / graphdb / execute_script";
Ресурс WebResource = Client.create (). Resource (scriptURI);
String entity = toJsonNameValuePairCollection ("script", "g = new Neo4jGraph ('db / data /'); g.V.name");
ClientResponse response = resource.accept (MediaType.APPLICATION_JSON) .type (MediaType.APPLICATION_JSON) .entity (entity .post (ClientResponse.class);