Java-клиент Vertx выдает «Ошибка ответа SMF AD bind» при подключении к серверу solace vmr - PullRequest
0 голосов
/ 04 мая 2018

Когда я пытаюсь подключить утешительный VMR Server и доставить сообщения от клиента Java под названием Vertx AMQP Bridge.

Я могу подключиться к серверу Solace 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 bind response error ', info = {solace.response_code = 503, solace.response_text = Неизвестно Очередь}} 27 апреля 2018 15:07:29 io.vertx.proton.impl.ProtonSessionImpl ВНИМАНИЕ: Приемник закрыт с ошибкой io.vertx.core.impl.NoStackTraceThrowable: Ошибка {условие = amqp: не найдено, описание = 'SMF AD bind response error ', info = {solace.response_code = 503, solace.response_text = Неизвестно Очередь}}

Я создал очередь, а также тему правильно в утешении VMR, но не могу отправлять / получать сообщения. Я пропускаю какую-либо конфигурацию от утешения на стороне сервера VMR? Требуется ли изменение кода в Java-коде Vertx Sender выше? Я получаю сообщение об ошибке выше при доставке сообщения. Может ли кто-нибудь помочь в этом же?

Java-клиент Vertx AMQP Bridge: https://vertx.io/docs/vertx-amqp-bridge/java/

1 Ответ

0 голосов
/ 07 мая 2018

Существует несколько причин, по которым вы можете столкнуться с этой ошибкой.

Возможно, клиент не авторизован для публикации гарантированных сообщений. Чтобы это исправить, вам нужно включить «гарантированное создание конечной точки» в профиле клиента на стороне маршрутизатора Solace.

Может также быть, что приложение использует обработку ответа. В настоящее время это не поддерживается маршрутизатором Solace. Поддержка этого будет добавлена ​​в выпуске 8.11 Solace VMR. Обходной путь для этого должен был бы установить ReplyHandlingSupport в false.

AmqpBridgeOptions().setReplyHandlingSupport(false);

Существует также известная проблема в Solace VMR, которая вызывает эту ошибку при отписке от конечной точки долгосрочной темы. Исправление этой проблемы также будет в выпуске 8.11 Solace VMR. Обходным путем для этого является отключение клиента без предварительной отписки.

...