我正在使用Spring SimpleMessageListenerConatiner,其中确认模式为2(客户端确认),而Queue是Solace。
当我从单元测试中抛出运行时异常时,意味着独立的spring配置,消息重新发送没有任何问题,但是当我在JBOSS中部署应用程序时,相同的代码不起作用。
public class MyListener实现MessageListener { public void onMessage(消息消息){
try {
throw new ConnectionException("Error in Connection");
} catch (ConnectionException e) {
LOGGER.error("Throwing exception...");
throw new MyRuntimeException("Throwing exception");
} finally {
LOGGER.info("Done...");
}
}
Spring config is:
<bean id="solaceMessageListener" class="org.springframework.jms.listener.SimpleMessageListenerContainer">
<property name="connectionFactory" ref="solaceConnectionFactory"/>
<property name="destinationName" value="QueueName"/>
<property name="messageListener" ref="myListener"/>
<property name="concurrency" value="1"/>
<property name="destinationResolver" ref="destinationResolver" />
<property name="sessionAcknowledgeMode" value="2"/>
</bean>
Constaint: 1.我不能使用DefaultMessageListenerContainer 2. Session Transacted true工作正常,但我们不能使用它。