我想向JMS队列发送消息,并且想设置一个对象属性:

tMessage.setObjectProperty("JMS_IBM_MQMD_MsgId", bytes); //bytes is a byte array value


但是我在这一行遇到了一个例外:

tMessage.setObjectProperty("JMS_IBM_MQMD_MsgId", toByteArray((phone+"IBM").toCharArray()));


为什么不能将字节数组设置为此属性?我看到了一些示例,每个人都设置了字节数组,但是却出现异常:

weblogic.jms.common.MessageFormatException: [JMSClientExceptions:055123]Invalid property value, [B@48647dd0


为什么?谢谢!

最佳答案

对于setObjectProperty


  setObjectProperty方法接受Boolean,Byte,
  短,整数,长,浮点,双精度和字符串。尝试使用任何
  其他类必须抛出JMSException。


因此它不接受ByteArray
setObjectProperty接受Object,因此不会出现编译错误。

09-15 23:55