我正在尝试将String转换为JMS BytesMessage。有没有办法做到这一点?
我需要这样做,因为我有一个方法,它接受一个解密的String,我需要将它转换为BytesMessage才能解密消息。
由于
答案 0 :(得分:1)
byte[] bArray = "foo".getBytes("UTF-8");
BytesMessage msg = session.createBytesMessage(); // throws JMSException
msg.writeBytes(bArray);
当然,像Arcadien所说,你需要在适当的环境中执行代码来从中获取javax.jms.Session对象。
答案 1 :(得分:0)
你可以使用
byte[] String#getBytes()
从字符串中获取字节数组并将其写入ByteMessage
答案 2 :(得分:0)
有点晚了, 但总比没有好。
@Carlo答案本质上是正确的,
但是如果您使用getBytes
,则必须捕获异常
使用String
参数。
这是getBytes调用的变体,不会引发异常:
final byte[] byteArray = "blammy".getBytes(StandardCharsets.UTF_8);
final BytesMessage bytesMessage = session.createBytesMessage();
bytesMessage.writeBytes(byteArray);
StandardCharsets
类定义了可在Java平台的每个实现上保证可用的字符集。