我想使用 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;
}
}
提前致谢。