有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java JMSBytesMessage to string和string to JMSBytesMessage类型转换

我需要将消息写入MQ,如果由于任何原因失败,我必须将该消息写入文本文件。我必须继续将消息添加到此文本文件,直到消息再次开始流向MQ。一旦消息开始流动,我必须检查文本文件并从中加载所有挂起的消息,然后从文本文件中删除它们

try{
    sender.send(mqMessage); where mqMessage is of JMSBytesMessage
}

现在,如果消息发送失败,我必须将其写入文本文件

catch(JMSException mqe)
       {
           mqe.printStackTrace();
           try{


                String msgString= mqMessage.toString();
                FileWriter fstream = new FileWriter(filePath);
                BufferedWriter out = new BufferedWriter(fstream);
                out.append(msgString);
                out.close();
              }
           catch (Exception e){//Catch exception if any
                  System.err.println("Error: " + e.getMessage());

                }

       }

一旦消息开始流动,我必须读取文本文件并加载所有这些消息 在sender.send(mqMessage)之后的第一个try块内

我正在读取完整的文件内容,在拆分消息并将其存储为字符串之后,我如何将该字符串键入JMSBytesMessage类型,以便将它们放在MQ上

我在这里提到了完整的场景,因为我想告诉大家,尽管我想将JMSBytesMessage转换为string,然后再将string转换为JMSBytesMessage,但我不想在执行这两个类型转换时更改实际内容

谢谢


共 (1) 个答案

  1. # 1 楼答案

    字节消息到文本

    int length = new Long(message.getBodyLength()).intValue();
    byte[] b = new byte[length];
    message.readBytes(b, length);
    String text = new String(b, "UTF-8");
    

    文本到字节消息

    byte[] b = mytext.getBytes("UTF-8");
    BytesMessage message = session.createBytesMessage();
    message.writeBytes(bArray);