2

メッセージを JMS キューに送信し、オブジェクト プロパティを設定したい:

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

しかし、私はこの行の例外を取得しています:

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

このプロパティにバイト配列を設定できないのはなぜですか? 私はいくつかの例を見て、誰もがbytearrayを設定していますが、例外が発生しています:

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

なんで?ありがとうございました!

4

3 に答える 3

1

WMQ インストールのサンプルの 1 つ、SimpleWMQMDWrite.java を参照することをお勧めします。

これは setObjectProperty を次のように使用します。

  // Generate a custom message id
  byte[] customMessageId = new byte[24];
  for (int i = 0; i < 24; i++) {
    // Hex-string 010203040506070801020304050607080102030405060708
    customMessageId[i] = (byte) ((i % 8) + 1);
  }

  // Write to MQMD.MsgId via JMS_IBM_MQMD_MSGID message property
  message.setObjectProperty(WMQConstants.JMS_IBM_MQMD_MSGID, customMessageId);

含まれているエラー メッセージは、WebLogic の WMQ JMS エラー メッセージとあまり似ていませんが、メッセージ オブジェクトがラップされ、追加のチェックが行われているのでしょうか?

M.

于 2013-11-11T13:23:40.067 に答える