2013-07-01 2 views
2

Я хочу отправить большое строковое сообщение (3-5 MB) с помощью jmstemplate (с помощью activeemq jms broker). В середине отправки сообщения я отключил своего брокера; Почему я не могу поймать исключенное исключение в catch (Exception e)? Что я должен сделать, чтобы справиться с этим исключением?Обработка исключений в JmsTemplate send

public class MessageSenderServiceImpl implements MessageSenderService 
{ 
    private JmsTemplate jmsTemplate; 

    @Override 
    @Transactional 
    public void sendMessage(final String messageContent, final String destination) throws SendingMessageException 
    { 
     try 
     { 
      jmsTemplate.send(destination, new MessageCreator() 
      { 
       @Override 
       public Message createMessage(Session session) throws JMSException 
       { 
        BytesMessage byteMessage = session.createBytesMessage(); 
        try 
        { 
         byteMessage.writeBytes(messageContent.getBytes("UTF-8")); 
         return byteMessage; 
        } 
        catch (UnsupportedEncodingException e) 
        { 
         e.printStackTrace(); 
         throw new JMSException(e.getMessage()); 
        } 
       } 
      });   
     } 
     catch(Exception e) 
     { 
      throw new SendingMessageException(e.getMessage(),e); 
     } 
    } 

    public void setJmsTemplate(JmsTemplate jmsTemplate) 
    { 
     this.jmsTemplate = jmsTemplate; 
    } 
} 

благодарит заранее.

+0

Какое исключение вы употребляете? Что в файле журнала? – Beryllium

+0

Вы решили эту проблему? Я вижу нечто подобное. Возможно ли, что JmsTemplate не выбрасывает исключение? – rghome

ответ

0

Это просто догадка, но это может быть связано с тем, что Spring JmsTemplate Spring перебрасывает исключения, такие как исключение JmsException, которое является исключением Runtime, поэтому вам нужно поймать Throwable, чтобы его поймать.

+0

RuntimeException расширяет Exception, я думаю. – united

+0

да, вы правы - пожалуйста, не обращайте внимания на мой комментарий - я смотрел этот пост и пропустил то, что вы уже ловите сверху. Исключение: http://forum.springsource.org/showthread.php?95919-Exception-handling-while- do-a-jmsTemplate-send – Marina

+0

Не рекомендуется улавливать Исключение из его абстрактного. Я даю вам указание дать мне название исключения :) JmsException – JWqvist

Смежные вопросы