- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在构建一些 MQ 队列连接,我需要将消息队列从 queueReceiver.Receivenowait()
转换为 JMS Textmessage。
因为 queueReceiver.Receivenowait()
格式是 Byte,所以我需要将其转换为 Textmessage,以便将中断消息放入数组 List 中。
我已经使用以下方法做到了这一点:
queueReceiver = queueSession.createReceiver(ringQueue);
要获取 Bytemessage,我需要转换为 JMS 文本消息:
List<String> outputList = new ArrayList<String>();
while (loop) {
TextMessage msgResponse = (TextMessage) bytesMessage;
if (msgResponse.getText() == null) {
loop = false;
} else {
message = msgResponse.getText();
outputList.add(message);
msgResponse.acknowledge();
}
}
我得到了这个错误代码:
java.lang.ClassCastException: com.ibm.jms.JMSBytesMessage cannot be cast to javax.jms.TextMessage
最佳答案
我的猜测是,您并不是真的想将 BytesMessage
转换为 TextMessage
,而只是想将 BytesMessage< 中的字节数组转换
到 String
。如果这是真的,那么您可以使用如下代码:
List<String> outputList = new ArrayList<String>();
while (loop) {
if (bytesMessage instanceof BytesMessage) {
BytesMessage msgResponse = (BytesMessage) bytesMessage;
if (msgResponse.getBodyLength() == 0) {
loop = false;
} else {
byte[] bytes = new byte[(int) msgResponse.getBodyLength()];
msgResponse.readBytes(bytes);
outputList.add(new String(bytes));
msgResponse.acknowledge();
}
}
}
当然,bytesMessage
每次循环都需要是不同的消息。
关于java - 如何在 Java 中将 JMSBytesMessage 转换为 TextMessage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57569861/
我需要向 MQ 写入消息,如果由于任何原因失败,我必须将该消息写入文本文件。我必须继续将消息添加到此文本文件,直到消息再次开始流向 MQ。一旦消息开始流动,我必须检查文本文件并从中加载所有待处理的消息
我正在构建一些 MQ 队列连接,我需要将消息队列从 queueReceiver.Receivenowait() 转换为 JMS Textmessage。 因为 queueReceiver.Receiv
我使用 Spring 的 JmsTemplate 将 ObjectMessage 发送到 MQ 队列: this.jmsTemplate.send(this.queue, new MessageCre
所以我使用 Spring 和 IBM MQ Queue 发送一个对象: public void sendObjectMessage(final Object message) { // jmsTem
我是一名优秀的程序员,十分优秀!