【发布时间】:2014-10-04 09:47:35
【问题描述】:
我有一个 tibco 活动,它以字节为单位提供此输出。
现在我必须在我的 java 代码中使用它并将其发送到大型机队列。
我将其作为String bwmsg="wcLDxMXGx8=" 并在我的主要方法中...
byte[] bArray = bwmsg.getBytes();
BytesMessage bytmsg = session.createBytesMessage();
bytmsg.writeBytes(bArray);
mqSender.sendToMQ(bytmsg,connection,sender,session);
OUTPUT: 77634c44784d584778383d
我做错了吗? 已经是一个字节的东西我正在将它作为一个字符串读取,然后再次从中获取字节并执行解决方法。这是错的吗?
如果是,请告诉我如何将 bwmsg 字段作为字节传递给方法。
我在 Google 上搜索了许多链接,但没有得到很好的帮助。
【问题讨论】:
-
我强烈怀疑该字符串是 base64 编码的。所以你不想打电话给
getBytes()- 你想使用base64解码器。您需要更清楚地了解转化发生的地点和方式... -
@JonSkeet:: 你能确认一下这种方法是错误的吗?我正在获取字节...将其作为字符串,然后从中获取字节并发送它们。
-
“我得到字节”是什么意思?你在这里太含糊了。我们所能看到的只是你从一个 string (
String bwmsg = ...) 开始 -
@JonSkeet:我从一个字符串开始..但我是从 tibco BW 的其他系统得到的。这个输出以字节为单位......我假设它是字符串然后读取它的字节。如果我可以直接在那个字符串 bwmsg 的地方取字节,请告诉我。
-
tibco BW 是一个 SOA 框架。我通常使用生成的类进行 SOA 通信,它在例如之间进行转换。 SOA 消息中的 base64 编码 PC 数据到 java 中的 byte[] 变量。如果您手动解析 SOA 消息,则必须自己进行转换(例如 Java 8 提供 java.util.Base64.getDecoder())。你能分享更多关于你的设置的信息吗?您如何通过 tibco BW 接收数据?
标签: java jakarta-ee byte ibm-mq mq