Mensagem MQ recebida como uma lista de 'bytes' em vez de texto
estou a usar a Websphere MQ e a ler mensagens da fila usando a integração de molas e um adaptador jms.
quando adiciono manualmente mensagens à fila, a aplicação lê-as e lê os dados como um String
e está tudo bem.
No entanto, quando uma parte externa está a adicionar mensagens à fila, a aplicação está a lê-las como um conjunto de bytes e, em seguida, a lançar esta excepção:
Caused by: java.lang.ClassCastException: [B cannot be cast to java.lang.String
as mensagens parecem-me iguais em MQExplorer.
Embora tenha notado uma coluna de formato, onde as mensagens que estão a ser processadas como cadeias têm o valor {[[2]} e a mensagem a ser processada como Byte [] não tem nada lá dentro. Pode estar relacionado? Em caso afirmativo, alguma ideia de como definir o "formato" da mensagem?
Alguém sabe o que determina o tipo de conteúdo de carga útil de uma mensagem, assim posso recriar o problema, pelo menos?2 answers
Este artigo explica a conversão de mensagens MQ em mensagens JMS.
Gostaria de falar com o partido externo e perguntar-lhes como estão a enviar as suas mensagens. Eles podem ter que lhe dar detalhes das propriedades MQMD que eles são configuracao. Talvez tenhas de os recuperar no teu MessageListener.No lado nativo do remetente de mensagens mq, defina o Mqmd ["formato"] = 'Mqstr' irá certificar-se de que a mensagem é enviada no formato jms_ text, caso contrário, por omissão, está no formato bytes.
Tenho-o a trabalhar em Python2.7 com Pymqi.