3

jmstemplate (activemq jms ブローカー) で大きな文字列メッセージ (3-5 MB) を送信したい。メッセージの送信中にブローカーをシャットダウンしました。catch(Exception e) でスローされた例外をキャッチできないのはなぜですか? この例外を処理するにはどうすればよいですか?

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;
    }
}

前もって感謝します。

4

1 に答える 1