4
- 春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);
}
}
应用B
@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 {
....
}
}
用Spring集成你的设计要简单得多。 – luksmir 2013-07-16 09:17:31
@luksmir你能解释一下吗? – Sergio 2016-09-06 04:20:03