我是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