我是JMS的新手。我正在尝试一个示例示例,在该示例中,我在会话中向队列发送消息,并根据标志值会话提交。我期望的代码是,当我的标志为false时,消息保留在队列中,不会被删除。如果标志为真,会话将被提交,并且我收到消息。我无法执行前一部分,即在flg值为false时将消息保存在队列中。Java消息服务队列会话
我正在使用MDPListener和spring框架。以下是我的代码:
public void onMessage(Message message,Session session) {
System.out.println("New Message arrived part2 .. Passing to Controller");
Boolean g=false;
if(g==true)
{
System.out.println("Data true..session committed!!");
try {
session.commit();
} catch (JMSException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else
{
try {
System.out.println("Sesison not commds!!");
//HERE I WANT THE CODE TO STORE THE MESSAGE IN THE QUEUE, SO THAT NEXT TIME WHEN THE FLAG IS TRUE, MESSAGE GETS DELIVERED!
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
只要消息遇到队列,就会调用onMessage,消息将从Topic/Queue中删除。您必须将消息重新输入队列,该队列将再次调用onMessage()并可能递归到会话为止。 – karmanaut