gpt4 book ai didi

java - Gremlin 集群/连接不会因凭据错误而失败

转载 作者:太空宇宙 更新时间:2023-11-04 10:26:11 24 4
gpt4 key购买 nike

代码要求:

  • 用户通过/database//collection//entities 的 url 模式访问服务
  • Java 尝试通过 Gremlin 连接到特定的数据库和集合。如果连接失败,则将错误返回给用户
  • 如果连接成功,Java 将运行预先构建的查询并将结果返回给用户。

我面临的问题:使用位于 https://github.com/Azure-Samples/azure-cosmos-db-graph-java-getting-started/blob/master/src/GetStarted/Program.java 的教程,我正在使用正确的凭据构建一个集群,然后构建一个客户端对象;当所有配置正确时,它可以正常工作,不会出现任何问题。但是,如果我更改任何参数、DATABASE_ID、COLLECTION_ID 或 PASSWORD,代码将继续经过集群的构建并经过运行 connect() 的集群,直到它尝试运行“client.submit(query)”,此时它将返回 NullPointerException。

问题:集群或客户端对象中是否有内置方法,如果已成功通过身份验证,则返回该方法。

代码控制台:

DATABSE_ID:PURPOSELY_WRONG_DB
COLLECTION_ID:PURPOSELY_WRONG_COLLECTION
PASSWORD:PURPOSELY_WRONG_PASSWORD_TO_TEST_IF_CONNECTION_THROWS_ERROR
QUERY:g.V().count()
START QUERYING GREMLIN SERVER
AT THIS POINT I HAVE PASSED CLIENT.CONNECT()
ABOUT TO SUBMIT THE QUERY.....
java.lang.NullPointerException: null
at org.apache.tinkerpop.gremlin.driver.Handler$GremlinResponseHandler.channelRead0(Handler.java:239)
at org.apache.tinkerpop.gremlin.driver.Handler$GremlinResponseHandler.channelRead0(Handler.java:195)
at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:367)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:353)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:346)

最佳答案

Gremlin 服务器协议(protocol)使用 SASL-based authentication ,当发送第一个请求时,身份验证握手开始。

基本握手顺序如下:

  1. 服务器收到新连接的请求。
  2. 服务器发送身份验证质询。
  3. 客户端发送带有凭据的身份验证响应。
  4. 服务器检查凭据,然后使用原始请求的结果进行响应,或者返回无效的凭据响应。

但是,空指针异常不是预期的。

您能否提供:

  • 您使用的 gremlin-java 客户端版本是什么?
  • 重现问题的示例。
  • 如果可能的话,GremlinResponseHandler 正在尝试读取的响应消息?

另请参阅 Gremlin 请求/响应引用 here .

关于java - Gremlin 集群/连接不会因凭据错误而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50497349/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com