我有一个带有模拟响应测试步骤的 testCase,并且端点正在从 weblogic jms 队列 jms://WLS::-::queue_SouthboundOutboundQueue 中读取。
当来自 weblogic 的消息达到“10000000”字节时,此测试步骤将停止在测试用例运行中消耗该消息。
尝试从这样的 groovy 脚本中读取队列:
def jmsEndPoint = new JMSEndpoint("jms://WLS::-::queue_SouthboundOutboundQueue");
log.debug(jmsEndPoint.sessionName);
def hermes = HermesUtils.getHermes(context.testCase.testSuite.project, jmsEndPoint.sessionName);
def jmsConnectionHolder = new JMSConnectionHolder(jmsEndPoint,hermes,false,null,null,null);
Session session = jmsConnectionHolder.getSession();
Queue queue = jmsConnectionHolder.getQueue(jmsConnectionHolder.getJmsEndpoint().getReceive());
MessageConsumer consumer = session.createConsumer(queue);
Message message = null;
def count = 0;
while((message = consumer.receiveNoWait()) != null){
//error happens here when it is consumed
count++;
}
阅读大消息时 groovy 抛出的错误
weblogic.jms.common.JMSException:weblogic.messaging.dispatcher.DispatcherException:weblogic.rjvm.PeerGoneException:;嵌套异常是:weblogic.socket.MaxMessageSizeExceededException:传入消息的大小:“10000080”字节超过配置的最大值:“10000000”字节协议:“t3”行错误:22
PS:Weblogic 正在处理大消息,因为我在其中添加了 -Dweblogic.MaxMessageSize=2000000000。还尝试在 soapui 和 hermes sh 和 bat 启动文件上添加此参数,但没有任何效果。