Как подключиться к Amazon Neptune с помощью Java?

#java #gremlin #graph-databases #tinkerpop3 #amazon-neptune

Вопрос:

Это код, который использует Java для подключения к Amazon Neptune.

Когда я запускаю mvn compile exec:exec компиляцию программы, возникает ошибка: gremlinjava/src/main/java/com/amazonaws/App.java:[39,15] error: illegal start of expression .

На самом деле я не знаю, где я ошибаюсь. Так как же я могу заставить это работать?

Заранее спасибо

 package com.amazonaws; import org.apache.tinkerpop.gremlin.driver.Cluster; import org.apache.tinkerpop.gremlin.driver.Client; import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource; import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal; import static org.apache.tinkerpop.gremlin.process.traversal.AnonymousTraversalSource.traversal; import org.apache.tinkerpop.gremlin.driver.remote.DriverRemoteConnection; import org.apache.tinkerpop.gremlin.structure.T;  public class App {  public static void main( String[] args )  {  Cluster.Builder builder = Cluster.build();  builder.addContactPoint("xxxxxxxxxxx.us-east-1.neptune.amazonaws.com");  builder.port(8182);  builder.enableSsl(true);  builder.keyCertChainFile("SFSRootCAG2.pem");   Cluster cluster = builder.create();   GraphTraversalSource g = traversal().withRemote(DriverRemoteConnection.using(cluster));   // Add a vertex.  // Note that a Gremlin terminal step, e.g. iterate(), is required to make a request to the remote server.  // The full list of Gremlin terminal steps is at https://tinkerpop.apache.org/docs/current/reference/#terminal-steps  g.addV("Person").property("Name", "Justin").iterate();   // Add a vertex with a user-supplied ID.  g.addV("Custom Label").property(T.id, "CustomId1").property("name", "Custom id vertex 1").iterate();  g.addV("Custom Label").property(T.id, "CustomId2").property("name", "Custom id vertex 2").iterate();   g.addE("Edge Label").from(g.V("CustomId1")).to(g.V("CustomId2")).iterate();   // This gets the vertices, only.  GraphTraversal t = g.V().limit(3).elementMap();   t.forEachRemaining(  e -gt; System.out.println(t.toList()));   cluster.close();  } }  

Комментарии:

1. Код, которым вы поделились, отлично компилируется и запускается для меня. Я не уверен, что в вашей системе может быть что-то не так.

Ответ №1:

В коде в строке 39 нет ничего плохого с точки зрения компиляции. Я могу скомпилировать весь файл без проблем. Когда я запускаю его, я получаю список с 3 результатами, как и ожидалось. Вы также можете изменить код, как показано ниже, чтобы получить три отдельных результата, и он по-прежнему отлично работает для меня. Интересно, есть ли у вас каким-то образом невидимый странный символ или что-то в этом роде в файле исходного кода? Я использовал javac версию 1.8.0_181

 GraphTraversal t = g.V().limit(3).elementMap();  t.forEachRemaining(   e -gt; System.out.println(e));  

или просто сделать

 GraphTraversal t = g.V().limit(3).elementMap();  System.out.println(t.toList()));  

Весь ваш файл собран для меня чисто.

Комментарии:

1. Спасибо за ваш ответ. Может быть, я думаю, что проблема в том, pom.xml. Я переустановлю javac и java в pom.xml