在Java中将字符串转换为JMS BytesMessage

时间:2012-06-27 15:15:32

标签: java

我正在尝试将String转换为JMS BytesMessage。有没有办法做到这一点?

我需要这样做,因为我有一个方法,它接受一个解密的String,我需要将它转换为BytesMessage才能解密消息。

由于

3 个答案:

答案 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平台的每个实现上保证可用的字符集。