gpt4 book ai didi

java - 将 XML 发送到 JMS 时,我应该使用 TextMessage 还是 BytesMessage

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:52:04 26 4
gpt4 key购买 nike

我在网上发现了一些非常矛盾的信息,我认为每个不同的 JMS 提供者也可能会改变答案。

我试图了解在将 XML 发送到 JMS 系统(例如 ActiveMQ)时我是否应该使用

  • BytesMessage :我可以保证 XML 已正确序列化,并且前导码将与实际编码匹配。此外,我可以确定客户端将能够正确获取原始表示。

  • TextMessage :许多队列实现中都有用于轻松发送 XML 的 API。我还了解到消息附有“编码”信息。但我冒着以一种格式对消息进行编码(并编写其前导码)并以另一种格式接收它的风险。

有没有人有明确的答案,或者至少有一些您会选择其中之一的原因?

最佳答案

我同意 jos'评论你的问题。首先,您应该选择最能表达您内容的语义 的消息类型。阅读 TextMessage Javadoc,我会这样做:

This message type can be used to transport text-based messages, including those with XML content.

因此,如果您确实遇到了文本消息编码方面的问题,那么客户端/服务器端可能存在一些错误配置。但这不应该成为滥用主要不是用于文本传输的不同消息类型的动机,例如 BytesMessage .

注意:即使使用 BytesMessage,您也可能会得到错误的编码。想象一下:

// Send that data through JMS
byte[] data1 = "source text".getBytes("ISO-8859-1");

// Receive the byte stream on the other side. Ooops
String data2 = new String(data1, "UTF-8");

关于java - 将 XML 发送到 JMS 时,我应该使用 TextMessage 还是 BytesMessage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10849828/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com