Как преобразовать сообщение JMS, полученное с помощью Message Listener, в объект домена

Я использую:

  • Пружина 3.1.1
  • ActiveMQ 5.6.0

У меня есть два приложения JMS:

  • Приложение A использует JmsTemplate для отправки объекта домена с помощью jmsTemplate.convertAndSend (msg );
  • Приложение B использует прослушиватель сообщений, и зарегистрирован конвертер сообщений

. Когда полученное сообщение преобразуется, нулевые значения извлекаются.

Я знаю, что это должно быть довольно просто, но я получаю нулевые значения и не нашел примера, чтобы увидеть, что я делаю неправильно.

Может кто-нибудь объяснить, пожалуйста, как это работает?

Объект домена

public class MyDomainObj implements Serializable {

private static final long serialVersionUID = -5411260096045103654L;
private String name;
private String msg;

public MyDomainObj() {

}

public MyDomainObj(String name, String msg) {
    this.name = name;
    this.msg = msg;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public String getMsg() {
    return msg;
}

public void setMsg(String msg) {
    this.msg = msg;
}

}

Приложение А

@Component
public class MessageSender {

    @Autowired
    private JmsTemplate jmsTemplate;

    public MessageSender() {

    }

    public void sendMessage(MyDomainObj msg) {
        jmsTemplate.convertAndSend(msg);
    }
}

Приложение Б

@Component
public class MyReceiverConverter implements MessageConverter {

    @Override
    public Object fromMessage(Message msg) throws JMSException,
            MessageConversionException {

        MyDomainObj myDomainObj = new MyDomainObj(msg.getStringProperty("name"), msg.getStringProperty("msg"));


        return myDomainObj;
    }

    @Override
    public Message toMessage(Object msg, Session session) throws JMSException,
            MessageConversionException {

       ....
    }
}
5
задан mike.l 7 August 2012 в 20:44
поделиться