当我尝试连接安慰VMR服务器并从名为Vertx AMQP Bridge的Java客户端传递消息时。
我能够连接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: 错误{condition = amqp:not-found,description =&#39; SMF AD绑定响应 错误&#39;,info = {solace.response_code = 503,solace.response_text =未知 队列}} Apr 27,20188 3:07:29 PM io.vertx.proton.impl.ProtonSessionImpl 警告:接收器因错误而关闭 io.vertx.core.impl.NoStackTraceThrowable: 错误{condition = amqp:not-found,description =&#39; SMF AD绑定响应 错误&#39;,info = {solace.response_code = 503,solace.response_text =未知 队列}}
我已经在安慰VMR中正确创建了队列和主题,但是无法发送/接收消息。我错过了安慰VMR服务器端的任何配置吗?上面的Vertx Sender Java代码是否需要进行代码更改?我在传递消息时收到上面的错误跟踪。有人可以帮忙吗?
Vertx AMQP Bridge Java客户端:https://vertx.io/docs/vertx-amqp-bridge/java/
答案 0 :(得分:0)
您可能遇到此错误的原因有几个。
可能是客户端无权发布有保证的消息。要解决此问题,您需要启用&#34;保证端点创建&#34;在Solace路由器端的客户端配置文件中。
也可能是应用程序正在使用回复处理。 Solace路由器目前不支持此功能。将在Solace VMR的8.11版本中添加对此的支持。解决方法是将ReplyHandlingSupport设置为false。
AmqpBridgeOptions().setReplyHandlingSupport(false);
Solace VMR中还存在一个已知问题,当从持久主题端点取消订阅时会导致此错误。此问题的修复程序也将出现在Solace VMR的8.11版本中。解决方法是在没有先取消订阅的情况下断开客户端连接。