Como usar JMS mensagem transformação em ActiveMQ com Stomp / JSON
Pergunta
Estou enviando mensagens em formato JSON para um servidor ActiveMQ. Eu estou tentando usar JMS Transformação para transformar o JSON codificado objeto em um verdadeiro objeto Java na esperança de ser capaz de usar seletores no interior de dados.
Aqui é um link para a documentação sobre Stomp e mensagem de Transformação. Aqui é um link para uma discussão sobre o patch onde alguém mostra um exemplo de um objeto JSON legal
O formato do JSON objetos Estou enviando (em impressão bonita) são semelhantes a este:
{ "msg": { "flag1" : "value1", "flag2" : "value2" } }
As mensagens chegam na fila de mensagens, mas com a propriedade de transformação de erros definido para 'msg: msg'.
Solução
Você pode usar qualquer notação JSON para as suas transformações jms-objeto-JSON, enquanto XStream pode lidar com isso. Você pode dar uma olhada em casos de teste para alguns exemplos. Lá, usamos classe SamplePojo:
que está devidamente anotado para que possa ser representado com o seguinte JSON
{ "pojo": { "Nome": "Dejan", "Cidade": "Belgrado" }}
Você pode tentar usar a mesma abordagem para as suas classes.
Espero que isso ajude, Dejan
Outras dicas
O único formato aceito pela transformação jms-map-json ou jms-objeto-JSON é um simples formato de mapa, que em JSON é:
{"map" : {"entry" : [ { "string1": [ "key1", "value1" ] }, { "string2": [ "key2", "value2" ] } ] } }
Este é o mesmo formato apresentado no fórum de discussão. Este formato representa um objeto par mapa de nome / valor em java.
Seletores são apenas utilizável em Propriedades e cabeçalhos.