首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JmsTemplate发送中的异常处理

JmsTemplate发送中的异常处理
EN

Stack Overflow用户
提问于 2013-07-02 00:38:31
回答 1查看 3.3K关注 0票数 3

我想用jmstemplate发送一个大的字符串消息(3-5MB)(用activemq jms broker)。在发送消息的过程中,我关闭了我的代理;为什么我无法在catch中捕获抛出的异常(异常e)?我该怎么处理这个异常呢?

代码语言:javascript
复制
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;
    }
}

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2013-07-12 23:55:17

这只是一个猜测,但这可能是因为Spring将异常重新抛出为JmsException,这是一个运行时异常,所以您需要捕获Throwable才能真正捕获它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17409481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档