0

我正在尝试使用此页面中的示例代码来测试将消息发布到 WSO2 消息代理:

https://docs.wso2.com/display/MB310/Sending+and+Receiving+Messages+Using+Queues

示例代码似乎连接 -> 发布 -> 断开连接。

我认为这不是生产代码的典型设计。我尝试减少每次发布消息时调用的代码(每秒几次),但看起来连接已断开并且从未重新建立:

public void publishMessage(String msg) throws NamingException, JMSException {
    TextMessage textMessage = topicSession.createTextMessage(msg);
    topicPublisher.publish(textMessage);
}

javax.jms.IllegalStateException:对象 org.wso2.andes.client.AMQSession_0_8@79aa1855 已关闭

每次发布消息时都需要重新连接吗?

4

1 回答 1

1

样品仅用于演示目的。由于 JMS 的连接相对较重,因此不建议为每条消息建立连接。您可以简单地修改代码以使用同一会话发送多条消息。根据附加的代码,您可以使用简单的 for 循环发送 5 条消息。

public void publishMessage(String msg) throws NamingException, JMSException {
   TextMessage textMessage = topicSession.createTextMessage(msg);
   for(int i=0; i<5; i++){
        topicPublisher.publish(textMessage);
   }
}
于 2016-10-05T15:55:20.427 回答