You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java使用AnonymousTraversalSource连接JanusGraph失败排查

问题

为何无法连接到localhost:8182上的JanusGraph-Server?
使用环境为Java-17、TinkerPop3 Gremlin和Janusgraph:latest。

复现步骤

操作步骤

  • 下载并安装Docker(Windows)
  • 创建并启动JanusGraph Docker容器,执行命令docker run -it -p 8182:8182 janusgraph/janusgraph
    Gremlin在JanusGraph镜像的Docker容器中运行
  • 创建并运行Java-Maven项目
  • 结果
    • 预期:无错误,后续代码正常运行
    • 实际:运行时错误:IllegalStateException
      无法建立序列化器 - org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV3d0

日志信息

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

代码结构与内容

│   pom.xml
├───src
│   ├───main
│   │   ├───java
│   │   │       Main.java
│   │   │
│   │   └───resources
│   │       │   log4j2.xml
│   │       │
│   │       ├───conf
│   │       │       remote-graph.properties
│   │       │       remote-objects.yaml

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] }}

pom.xml

<dependencies>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-slf4j2-impl</artifactId>
            <version>2.20.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tinkerpop</groupId>
            <artifactId>gremlin-core</artifactId>
            <version>3.6.2</version>
        </dependency>
<!--        <dependency>-->
<!--            <groupId>org.janusgraph</groupId>-->
<!--            <artifactId>janusgraph-core</artifactId>-->
<!--            <version>1.0.0-20230424-065649.dcd3240</version>-->
<!--        </dependency>-->
        <!-- https://mvnrepository.com/artifact/org.janusgraph/janusgraph-core -->
        <dependency>
            <groupId>org.janusgraph</groupId>
            <artifactId>janusgraph-core</artifactId>
            <version>0.6.4-20230429-020227.dc3f877</version>
        </dependency>
    </dependencies>
更新

感谢Marc!问题已解决!
问题解决截图

内容的提问来源于stack exchange,提问作者Zach

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 18:14:53