2017-11-10 9 views
0
public void sendSimpleMessage(String receiver, String sender) { 
    try { 
     Message message = jmsTemplate.receive(receiver); 
     System.out.println(message.getIntProperty("OlQuestionId")); 
     jmsTemplate.send(sender, new MessageCreator() { 

      @Override 
      public Message createMessage(Session session) throws JMSException { 
       throw new JMSException("Exception"+message.getIntProperty("OlQuestionId")); 
      } 
     }); 
    } catch (JmsException jmsException) { 
     System.out.println(jmsException); 
    } catch (JMSException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
} 

を使用して別のものに送信することができます。私が持っているJMSテンプレートの設定についてJMSテンプレート、どのように私は1つのキューからメッセージを受信し、それがすでに受け取っているように、メッセージの損失が存在することになる受信したメッセージを送信中に例外が発生した場合はJMSテンプレート

@Bean 
public JmsTemplate jmsTemplate() throws JMSException { 
    JmsTemplate template = new JmsTemplate(); 
    template.setConnectionFactory(connectionFactory()); 
    //template.setSessionAcknowledgeMode(Session.CLIENT_ACKNOWLEDGE); 
    template.setSessionTransacted(true); 
    template.setDeliveryMode(2); 
    return template; 

私はrecievingと、単一のセッションで送信しないことができるようにあなたは私の道を教えてくださいすることができます。 注:私はまた、SessionTransactedを削除している間にSession.ClientAcknowledgeを試しました。例外がある場合、私はメッセージを確認していませんが、まだメッセージが失われています。

ありがとうございました

答えて

関連する問題