Vertx Java 客户端在连接 solace vmr 服务器时抛出 "SMF AD bind response error"

Vertx Java Client throwing "SMF AD bind response error" while connecting solace vmr Server

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

我可以连接 Solace VMR 服务器,但连接后无法向 solace 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++);
        });
    });
}

}

我收到以下错误:

Bridge startup failed: io.vertx.core.impl.NoStackTraceThrowable: Error{condition=amqp:not-found, description='SMF AD bind response error', info={solace.response_code=503, solace.response_text=Unknown Queue}} Apr 27, 2018 3:07:29 PM io.vertx.proton.impl.ProtonSessionImpl WARNING: Receiver closed with error io.vertx.core.impl.NoStackTraceThrowable: Error{condition=amqp:not-found, description='SMF AD bind response error', info={solace.response_code=503, solace.response_text=Unknown Queue}}

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

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

您遇到此错误的原因可能有多种。

可能是客户端无权发布有保证的消息。要解决此问题,您需要在 Solace 路由器端的客户端配置文件中启用 "guaranteed endpoint create"。

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

AmqpBridgeOptions().setReplyHandlingSupport(false);

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