mockresponse テスト ステップを持つ testCase があり、エンドポイントは weblogic jms キュー jms://WLS::-::queue_SouthboundOutboundQueue から読み取っています。
weblogic からのメッセージが「10000000」バイトに達すると、このテスト ステップはテストケースの実行中にメッセージの消費を停止します。
次のようなグルーヴィーなスクリプトからキューを読み取ろうとしました:
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: -Dweblogic.MaxMessageSize=2000000000 を追加したため、Weblogic は大きなメッセージを処理しています。また、soapui および hermes sh および bat スターター ファイルにこのパラメーターを追加しようとしましたが、何も機能しませんでした。