为什么我在
localhost:8182
上无法连接到 JanusGraph-Server? │ pom.xml
├───src
│ ├───main
│ │ ├───java
│ │ │ Main.java
│ │ │
│ │ └───resources
│ │ │ log4j2.xml
│ │ │
│ │ ├───conf
│ │ │ remote-graph.properties
│ │ │ remote-objects.yaml
docker run -it -p 8182:8182 janusgraph/janusgraph
在shell (command interpreter)
Main.java
import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource;
import static org.apache.tinkerpop.gremlin.process.traversal.AnonymousTraversalSource.traversal;
public class Main {
public static void main(String[] args) throws Exception {
GraphTraversalSource g = traversal().withRemote("src/main/resources/conf/remote-graph.properties");
}
}
remote-graph.properties
gremlin.remote.remoteConnectionClass=org.apache.tinkerpop.gremlin.driver.remote.DriverRemoteConnection
gremlin.remote.driver.clusterFile=src/main/resources/conf/remote-objects.yaml
gremlin.remote.driver.sourceName=g
remote-objects.yaml
hosts: [localhost]
port: 8182
serializer: {
className: org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0,
config: { ioRegistries: [org.janusgraph.graphdb.tinkerpop.JanusGraphIoRegistry] }}
没有错误,其余代码运行。
Exception in thread "main" java.lang.IllegalStateException: java.lang.reflect.InvocationTargetException
at org.apache.tinkerpop.gremlin.process.remote.RemoteConnection.from(RemoteConnection.java:73)
at org.apache.tinkerpop.gremlin.process.traversal.AnonymousTraversalSource.withRemote(AnonymousTraversalSource.java:76)
at org.apache.tinkerpop.gremlin.process.traversal.AnonymousTraversalSource.withRemote(AnonymousTraversalSource.java:66)
at Main.main(Main.java:10)
Caused by: java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
at org.apache.tinkerpop.gremlin.process.remote.RemoteConnection.from(RemoteConnection.java:71)
... 3 more
Caused by: java.lang.IllegalStateException: java.lang.IllegalStateException: Could not establish serializer - org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0
at org.apache.tinkerpop.gremlin.driver.remote.DriverRemoteConnection.<init>(DriverRemoteConnection.java:84)
... 9 more
Caused by: java.lang.IllegalStateException: Could not establish serializer - org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0
at org.apache.tinkerpop.gremlin.driver.Cluster.getBuilderFromSettings(Cluster.java:228)
at org.apache.tinkerpop.gremlin.driver.Cluster.build(Cluster.java:173)
at org.apache.tinkerpop.gremlin.driver.Cluster.open(Cluster.java:265)
at org.apache.tinkerpop.gremlin.driver.remote.DriverRemoteConnection.<init>(DriverRemoteConnection.java:80)
... 9 more
Process finished with exit code 1
janusgraph-0.6.3 的 remote-objects.yaml 内容如下(序列化程序的版本不同):
hosts: [localhost]
port: 8182
serializer: {
className: org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV3d0,
config: {ioRegistries:[org.janusgraph.graphdb.tinkerpop.JanusGraphIoRegistry]}
}