gpt4 book ai didi

java - 如何接收 convertAndSend 发送的内容?

转载 作者:IT老高 更新时间:2023-10-28 13:45:42 25 4
gpt4 key购买 nike

我正在阅读 Spring Framework reference ,关于 JMS 集成的章节。有一些发送文本消息和异步接收它们(通过监听器)的示例。还有一个 JmsTemplate 函数 convertAndSend 的示例,它将给定对象转换为消息。引用资料说:

By using the converter, you and your application code can focus on the business object that is being sent or received via JMS and not be concerned with the details of how it is represented as a JMS message.

但没有接收此类消息的示例。他们提到了函数 receiveAndConvert 但不幸的是,它是同步接收的。
那么我如何异步接收它呢?我必须知道,当我 convertAndSend 一个 Map 时,生成的消息将是一个 MapMessage,只需在我的监听器中检查这种类型的留言并处理?但他们 promise 我不会关心它如何表示为 JMS 消息的细节。
那么有没有更好的办法呢?

最佳答案

我知道这个问题已经有一段时间了,但我遇到了同样的问题,解决了它,想在这里给出一个明确的代码示例。

这是我的 MessageListener .这实现了 onMessage(Message)异步拦截消息的方法。

package com.package.amqp;

import org.springframework.amqp.core.Message;
import org.springframework.amqp.core.MessageListener;
import org.springframework.amqp.support.converter.JsonMessageConverter;

import com.package.model.User;

public class TestListener implements MessageListener {

public void onMessage(Message message) {
JsonMessageConverter jmc = new JsonMessageConverter();
User u = (User)jmc.fromMessage(message);
System.out.println("received: " + u.getFirstName());
}
}

然后使用标准 JsonMessageConvertor 转换消息。在我的情况下,因为这是 messageConvertor我插入了我的rabbitTemplate bean 。

<bean id="rabbitConnectionFactory" class="org.springframework.amqp.rabbit.connection.SingleConnectionFactory">
<constructor-arg value="10.10.1.2"/>
<property name="username" value="guest"/>
<property name="password" value="guest"/>
</bean>

<bean class="org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer">
<property name="connectionFactory" ref="rabbitConnectionFactory"/>
<property name="queueName" value="queue.helloWorld"/>
<property name="messageListener" ref="someListener"/>
</bean>

<bean id="someListener" class="com.package.amqp.TestListener"></bean>

<bean id="rabbitTemplate" class="org.springframework.amqp.rabbit.core.RabbitTemplate">
<property name="connectionFactory" ref="rabbitConnectionFactory"/>
<property name="messageConverter">
<bean class="org.springframework.amqp.support.converter.JsonMessageConverter"/>
</property>
</bean>

希望这对某人有所帮助!欧文

关于java - 如何接收 convertAndSend 发送的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1373514/

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