gpt4 book ai didi

spring - 如何将使用消息监听器接收到的 JMS 消息转换为域对象

转载 作者:行者123 更新时间:2023-12-01 21:43:24 25 4
gpt4 key购买 nike

我正在使用:

  • Spring 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;
}

}

应用程序 A

@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 {

....
}
}

最佳答案

解决方案是:

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

MyDomainObj myDomainObj = (MyDomainObj)((ObjectMessage)msg).getObject();

return myDomainObj;
}

关于spring - 如何将使用消息监听器接收到的 JMS 消息转换为域对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11853841/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com