GryoMessageSerializerV3d0 类型已弃用
The type GryoMessageSerializerV3d0 is deprecated
我正在使用以下代码连接到 gremlin (JanusGraph) 服务器并在事务中执行 addV。我的代码工作正常,它正确地添加了 Vertex,但代码显示以下警告:
“不推荐使用 GryoMessageSerializerV3d0 类型” &
JanusGraphIoRegistry 类型的 getInstance() 方法已弃用
所以想知道如何解决这些警告。
请在下面找到我的代码:
import java.util.List;
import java.util.UUID;
import org.apache.tinkerpop.gremlin.driver.Client;
import org.apache.tinkerpop.gremlin.driver.Cluster;
import org.apache.tinkerpop.gremlin.driver.Result;
import org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV3d0;
import org.apache.tinkerpop.gremlin.driver.ser.Serializers;
import org.apache.tinkerpop.gremlin.structure.io.binary.GraphBinaryIo;
import org.apache.tinkerpop.gremlin.structure.io.gryo.GryoMapper;
import org.janusgraph.graphdb.tinkerpop.JanusGraphIoRegistry;
public class JanusSessiionConnector {
final static GryoMapper.Builder builder = GryoMapper.build().
addRegistry(JanusGraphIoRegistry.getInstance());
final static GryoMessageSerializerV3d0 serializer = new GryoMessageSerializerV3d0(builder);
final static GraphBinaryIo serializer2 = new GraphBinaryIo();
final static Cluster cluster = Cluster.build().addContactPoint("localhost").port(8182)
.serializer(serializer)
.maxInProcessPerConnection(32).maxSimultaneousUsagePerConnection(32).maxContentLength(1000000)
.maxWaitForConnection(10).minConnectionPoolSize(1).maxConnectionPoolSize(1).create();
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("Welcome to janus connector");
String sessionId = UUID.randomUUID().toString();
Client sessionClient = cluster.connect(sessionId);
try {
sessionClient.submit("graph.tx().open()");
sessionClient.submit("g.addV('Person').property('Name', 'Justin').next()");
sessionClient.submit("graph.tx().commit()");
List<Result> rs = sessionClient.submit("g.V().count()").all().join();
System.out.println("Result size is "+rs.size());
System.out.println(rs.get(0).getString());
System.out.println("5");
sessionClient.closeAsync();
} catch (Exception e) {
e.printStackTrace();
}
finally
{
if (sessionClient != null)
{
System.out.println("Connection closed ");
cluster.close();
}
}
}
}
谢谢,
阿图尔.
警告消息只是让您知道您正在使用的功能已被弃用。如果你看看 TinkerPop javadoc you can see how to resolve this problem - simply, prefer GraphBinaryMessageSerializerV1
to Gryo. You can often find helpful information for these sorts of things in the TinkerPop Upgrade Documentation。也就是说,您使用的是 JanusGraph,根据您使用的版本,我不确定他们的 IoRegistry
实现是否支持 GraphBinary。虽然他们 master
分支上的最新代码显示支持,但我在标记版本中看不到该代码。在 GraphBinary 得到完全支持之前,最好在 Gryo 上停留一段时间,因为根据您编写的 Gremlin,您可能会遇到一些序列化问题。警告只是警告 - 它们不应影响您的使用。
至于 JanusGraphIoRegistry
弃用警告,您可以很容易地摆脱它 - 只需选择 instance()
而不是 getInstance()
(source code).
我正在使用以下代码连接到 gremlin (JanusGraph) 服务器并在事务中执行 addV。我的代码工作正常,它正确地添加了 Vertex,但代码显示以下警告: “不推荐使用 GryoMessageSerializerV3d0 类型” & JanusGraphIoRegistry 类型的 getInstance() 方法已弃用
所以想知道如何解决这些警告。 请在下面找到我的代码:
import java.util.List;
import java.util.UUID;
import org.apache.tinkerpop.gremlin.driver.Client;
import org.apache.tinkerpop.gremlin.driver.Cluster;
import org.apache.tinkerpop.gremlin.driver.Result;
import org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV3d0;
import org.apache.tinkerpop.gremlin.driver.ser.Serializers;
import org.apache.tinkerpop.gremlin.structure.io.binary.GraphBinaryIo;
import org.apache.tinkerpop.gremlin.structure.io.gryo.GryoMapper;
import org.janusgraph.graphdb.tinkerpop.JanusGraphIoRegistry;
public class JanusSessiionConnector {
final static GryoMapper.Builder builder = GryoMapper.build().
addRegistry(JanusGraphIoRegistry.getInstance());
final static GryoMessageSerializerV3d0 serializer = new GryoMessageSerializerV3d0(builder);
final static GraphBinaryIo serializer2 = new GraphBinaryIo();
final static Cluster cluster = Cluster.build().addContactPoint("localhost").port(8182)
.serializer(serializer)
.maxInProcessPerConnection(32).maxSimultaneousUsagePerConnection(32).maxContentLength(1000000)
.maxWaitForConnection(10).minConnectionPoolSize(1).maxConnectionPoolSize(1).create();
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("Welcome to janus connector");
String sessionId = UUID.randomUUID().toString();
Client sessionClient = cluster.connect(sessionId);
try {
sessionClient.submit("graph.tx().open()");
sessionClient.submit("g.addV('Person').property('Name', 'Justin').next()");
sessionClient.submit("graph.tx().commit()");
List<Result> rs = sessionClient.submit("g.V().count()").all().join();
System.out.println("Result size is "+rs.size());
System.out.println(rs.get(0).getString());
System.out.println("5");
sessionClient.closeAsync();
} catch (Exception e) {
e.printStackTrace();
}
finally
{
if (sessionClient != null)
{
System.out.println("Connection closed ");
cluster.close();
}
}
}
}
谢谢, 阿图尔.
警告消息只是让您知道您正在使用的功能已被弃用。如果你看看 TinkerPop javadoc you can see how to resolve this problem - simply, prefer GraphBinaryMessageSerializerV1
to Gryo. You can often find helpful information for these sorts of things in the TinkerPop Upgrade Documentation。也就是说,您使用的是 JanusGraph,根据您使用的版本,我不确定他们的 IoRegistry
实现是否支持 GraphBinary。虽然他们 master
分支上的最新代码显示支持,但我在标记版本中看不到该代码。在 GraphBinary 得到完全支持之前,最好在 Gryo 上停留一段时间,因为根据您编写的 Gremlin,您可能会遇到一些序列化问题。警告只是警告 - 它们不应影响您的使用。
至于 JanusGraphIoRegistry
弃用警告,您可以很容易地摆脱它 - 只需选择 instance()
而不是 getInstance()
(source code).