【发布时间】:2013-06-28 20:52:41
【问题描述】:
我想使用 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;
}
}
提前致谢。
【问题讨论】:
-
您遇到了哪个异常?日志文件中有什么内容?
-
您解决了这个问题吗?我看到类似的东西。有没有可能 JmsTemplate 没有抛出异常?
标签: java exception-handling jms activemq jmstemplate