【发布时间】:2017-01-26 07:59:27
【问题描述】:
我的代码正在侦听 IBM MQ。接收 JMS BytesMessage,将其转换为接收器类中的字符串,并将相同的 JMS BytesMessage 传递给另一个处理器类。处理器类再次将其转换为字符串。接收器类和处理器类都使用如下相同的代码从 BytesMessage 获取字符串。我在 Receiver 类中获得了正确的字符串,但是当尝试从 Processor 类中的 BytesMessage 获取字符串时,它返回空字符串。请告知除了保留 JMS BytesMessage 之外还需要做什么,以便它也可以在处理器类中转换为字符串。
向处理器发送消息的代码:
String strMessage = null;
strMessage = getStringFromMessage(Message message)
process(message)
用于字符串转换的代码:
if (message instanceof BytesMessage){
BytesMessage byteMessage = (BytesMessage) message;
byte[] byteData = null;
byteData = new byte[(int) byteMessage.getBodyLength()];
byteMessage.readBytes(byteData);
stringMessage = new String(byteData);
}
【问题讨论】: