JMS:不允许服务器关闭连接和重新连接 [英] JMS: Server closed connection and reconnection not permitted

查看:186
本文介绍了JMS:不允许服务器关闭连接和重新连接的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想对队列中的邮件进行计数.

I want to count the messages in the queue.

InitialContext ctx = initQueue();
connFactory = (QueueConnectionFactory) ctx.lookup(CF_NAME);
queueConnection = connFactory.createQueueConnection();
queueConnection.start();
queueSession =
                queueConnection.createQueueSession(false, 
QueueSession.AUTO_ACKNOWLEDGE);
        queue = (Queue) ctx.lookup(queueName);

QueueBrowser queueBrowser = queueSession.createBrowser(queue);

但是在这里它停止了-------> QueueBrowser queueBrowser = queueSession.createBrowser(queue)

But here it stops ------->QueueBrowser queueBrowser = queueSession.createBrowser(queue)

错误消息是: 活动会话计数:1:org.wso2.andes.AMQDisconnectedException:不允许服务器关闭连接和重新连接. javax.jms.JMSException:注册使用者时出错:org.wso2.andes.AMQException:由于类javax.jms.JMSException而唤醒 在org.wso2.andes.client.AMQSession $ 6.execute(AMQSession.java:2143) 在org.wso2.andes.client.AMQSession $ 6.execute(AMQSession.java:2086) 在org.wso2.andes.client.AMQConnectionDelegate_8_0.executeRetrySupport(AMQConnectionDelegate_8_0.java:323) 在org.wso2.andes.client.AMQConnection $ 3.run(AMQConnection.java:655) 在java.security.AccessController.doPrivileged(本机方法) 在org.wso2.andes.client.AMQConnection.executeRetrySupport(AMQConnection.java:652) 在org.wso2.andes.client.failover.FailoverRetrySupport.execute(FailoverRetrySupport.java:102) 在org.wso2.andes.client.AMQSession.createConsumerImpl(AMQSession.java:2084) 在org.wso2.andes.client.AMQSession.createBrowserConsumer(AMQSession.java:1039) 在org.wso2.andes.client.AMQQueueBrowser.(AMQQueueBrowser.java:51) 在org.wso2.andes.client.AMQSession.createBrowser(AMQSession.java:1031) 在org.wso2.andes.client.AMQSession.createBrowser(AMQSession.java:1018) 在org.wso2.andes.client.AMQQueueSessionAdaptor.createBrowser(AMQQueueSessionAdaptor.java:87) 在com.test.vediamo.ConnectionTest.doGet(ConnectionTest.java:96) 在javax.servlet.http.HttpServlet.service(HttpServlet.java:622) 在javax.servlet.http.HttpServlet.service(HttpServlet.java:729) 在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292) 在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) 在org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) 在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) 在org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212) 在org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:94) 在org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504) 在org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)

The error message is: Active session count: 1: org.wso2.andes.AMQDisconnectedException: Server closed connection and reconnection not permitted. javax.jms.JMSException: Error registering consumer: org.wso2.andes.AMQException: Woken up due to class javax.jms.JMSException at org.wso2.andes.client.AMQSession$6.execute(AMQSession.java:2143) at org.wso2.andes.client.AMQSession$6.execute(AMQSession.java:2086) at org.wso2.andes.client.AMQConnectionDelegate_8_0.executeRetrySupport(AMQConnectionDelegate_8_0.java:323) at org.wso2.andes.client.AMQConnection$3.run(AMQConnection.java:655) at java.security.AccessController.doPrivileged(Native Method) at org.wso2.andes.client.AMQConnection.executeRetrySupport(AMQConnection.java:652) at org.wso2.andes.client.failover.FailoverRetrySupport.execute(FailoverRetrySupport.java:102) at org.wso2.andes.client.AMQSession.createConsumerImpl(AMQSession.java:2084) at org.wso2.andes.client.AMQSession.createBrowserConsumer(AMQSession.java:1039) at org.wso2.andes.client.AMQQueueBrowser.(AMQQueueBrowser.java:51) at org.wso2.andes.client.AMQSession.createBrowser(AMQSession.java:1031) at org.wso2.andes.client.AMQSession.createBrowser(AMQSession.java:1018) at org.wso2.andes.client.AMQQueueSessionAdaptor.createBrowser(AMQQueueSessionAdaptor.java:87) at com.test.vediamo.ConnectionTest.doGet(ConnectionTest.java:96) at javax.servlet.http.HttpServlet.service(HttpServlet.java:622) at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:94) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)

推荐答案

能否先创建一个队列,然后按如下所示创建浏览器?

Could you please create a queue first and then create the browser as follows?

QueueBrowser浏览器= queueSession.createBrowser(queueSession.createQueue("test-queue"));

QueueBrowser browser = queueSession.createBrowser(queueSession.createQueue("test-queue"));

这篇关于JMS:不允许服务器关闭连接和重新连接的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆