当前位置: 首页 > 知识库问答 >
问题:

Vertex Java客户端在连接solace vmr服务器时抛出“SMF AD绑定响应错误”

谷翰飞
2023-03-14

当我试图连接solace VMR服务器并从名为Vertx AMQP桥的Java客户端传递消息时。

我可以连接到VMR的服务器,但连接后,无法发送消息到VMR。我正在使用下面来自vertx客户端的发送者代码。

public class Sender extends AbstractVerticle {

    private int count = 1;

    // Convenience method so you can run it in your IDE
    public static void main(String[] args) {
        Runner.runExample(Sender.class);
    }

    @Override
    public void start() throws Exception {
    AmqpBridge bridge = AmqpBridge.create(vertx);

    // Start the bridge, then use the event loop thread to process things thereafter.
    bridge.start("13.229.207.85", 21196,"UserName" ,"Password", res -> {
        if(!res.succeeded()) {
            System.out.println("Bridge startup failed: " + res.cause());
            return;
        }

        // Set up a producer using the bridge, send a message with it.
        MessageProducer<JsonObject> producer = 
            bridge.createProducer("T/GettingStarted/pubsub");

        // Schedule sending of a message every second
        System.out.println("Producer created, scheduling sends.");
        vertx.setPeriodic(1000, v -> {
            JsonObject amqpMsgPayload = new JsonObject();

            amqpMsgPayload.put(AmqpConstants.BODY, "myStringContent" + count);
            producer.send(amqpMsgPayload);

            System.out.println("Sent message: " + count++);
        });
    });
}

}

我收到以下错误:

桥接器启动失败:io.vertx.core.impl.NoStackTraceThrowable:错误{条件=amqp:未找到,描述='SMF AD绑定响应错误',信息={solace.response_code=503,solace.response_text=未知队列}}} 2018年4月27日下午3:07:29io.vertx.proton.impl.ProtonSessionImpl警告:接收器因错误io.vertx.core.impl.NoStackTraceThrowable而关闭:错误{条件=amqp:未找到,描述='SMF AD绑定响应错误',信息={solace.response_code=503,solace.response_text=未知队列}}}

我已经在VMR创建了队列和主题,但是无法发送/接收消息。我是否遗漏了solace VMR服务器端的任何配置?上面的Vertx Sender Java代码中需要修改代码吗?当传递消息时,我得到了上面的错误跟踪。有人能帮忙吗?

Vertx AMQP桥接Java客户端:https://vertx.io/docs/vertx-amqp-bridge/java/

共有1个答案

盖斌
2023-03-14

您可能遇到此错误有几个不同的原因。

可能是客户端没有被授权发布保证的消息。要解决这个问题,您需要在Solace路由器端的客户端配置文件中启用“保证endpoint创建”。

也可能是应用程序正在使用回复处理。Solace路由器目前不支持此功能。对这一点的支持将在8.11版的VMR安慰中添加。解决方法是将ReplyHandlingSupport设置为false。

AmqpBridgeOptions().setReplyHandlingSupport(false);

Solace VMR中还有一个已知问题,在从持久主题endpoint取消订阅时会导致此错误。Solace VMR的8.11版本也将修复此问题。解决方法是在不首先取消订阅的情况下断开客户端。

 类似资料:
  • 我有一个示例Spring启动应用程序来运行图形QL服务器,具有作为客户端,我的pom有以下依赖项: 当我尝试从客户端连接时,出现以下错误: 狩猎决议好心建议。 我还有几个问题: 我应该使用SimpleGraphQLHttpServlet将请求路由到endpoint吗 我正在React UI上使用apollo client,那么它是强制使用apollo server还是spring boot可以工作

  • 我在做一个应用程序,把一些数据存储在数据库中,然后它再检索它。在服务器端,我使用的是PHP,在客户端,我有一个获取输入并将其传递给PHP文件的文件。 另外,我有这个JsonParser:

  • 我正在尝试使用hazelcast v3。2.4(服务器和客户端上的版本相同)。服务器(我可以安装的简单实现)正在服务器上运行。客户端尝试连接到远程服务器-服务器打印身份验证请求,但我收到以下日志输出(包括异常)-关于我可以做什么不同的想法(复制日志输出和配置文件)。我正在尝试通过TCP/IP进行连接,我检查了网络连接——我没有看到任何东西阻止连接。 堆栈中提到的代码行: 配置 日志输出 服务器输出

  • 我在通过TCP连接到Spring Boot RSocket应用程序时遇到问题。使用RSocketRequest ester时的客户端工作正常,但当我尝试使用RSocketFactory客户端连接时,它总是出错。下面的代码。 这会产生以下错误: 据我所知,这个特殊的错误是由于netty消息包装(来自stackoverflow上的其他线程)造成的,但如何解决呢?服务器是Spring Boot 5 RS

  • 客户端应用程序在以下代码处挂起:

  • 当我尝试使用套接字将物理设备连接到服务器时,我遇到了一个问题。在服务器端,它似乎不接受任何连接,而在客户端,套接字超时。你知道为什么会这样吗? 我在下面提供我的代码 服务器代码: 客户端: 11-16 23:32:11.016:W/系统。错误(24213):java.net。ConnectException:无法连接到/192.168.1.116(端口9090):连接失败:ETIMEDOUT(连接