No se puede establecer el valor de la propiedad para JMS_IBM_MQMD_MSGID en WebLogic, JMS, Java

StackOverflow https://stackoverflow.com/questions/19835743

Pregunta

Quiero enviar un mensaje a una cola JMS y quiero establecer una propiedad de objeto:

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

Pero estoy recibiendo una excepción para esta fila:

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

¿Por qué no puedo establecer la matriz de byte en esta propiedad? Vi algún ejemplo, y todos establecen Bytearray, pero estoy recibiendo una excepción:

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

¿Por qué? ¡Gracias!

¿Fue útil?

Solución

Para setObjectProperty:

El método SetObjectProperty acepta valores de clase booleana, byte, corta, entera, larga, flotante, doble y cadena. Un intento de usar cualquier otra clase debe lanzar una JMSEXCeption.

Entonces no acepta ByteArray. setObjectProperty aceptación Object para que no reciba un error de compilación.

Otros consejos

Sugeriría echar un vistazo a una de las muestras en la instalación de WMQ, llamada SimpleWMQMDWrite.java

Esto usa setObjectProperty de la siguiente manera:

  // 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);

Sin embargo, el mensaje de error que ha incluido no se parece mucho a un mensaje de error WMQ JMS más WebLogic, se pregunte si eso ha envuelto el objeto del mensaje y está haciendo una verificación adicional.

METRO.

También puedes transformar tu cadena hexadecimal en matriz de bytes usando com.ibm.msg.client.commonservices.Utils.hexToBytes(yourHexString)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top