Spring boot 使用rabbitmq jms生成消息,并使用简单rabbitmq使用者使用该消息

Spring boot 使用rabbitmq jms生成消息,并使用简单rabbitmq使用者使用该消息,spring-boot,rabbitmq,jms,Spring Boot,Rabbitmq,Jms,我对jms还不熟悉, 我制作了一个rabbitmq jms producer项目,我正在其中生成消息。在这个项目中,我们使用了jmstemplate和rabbitmq队列(其中包含jms插件的rabbitmq) 在队列中生成消息之后,我希望使用不带jms的简单rabbitmq使用者来使用该消息 但是当我在我的消费者类中以字符串的形式获取这些消息时 该信息的格式如下: wx.com.rabbitmq.jms.client.message.RMQTextMessage$e529erb2a65-a5d

我对jms还不熟悉, 我制作了一个rabbitmq jms producer项目,我正在其中生成消息。在这个项目中,我们使用了jmstemplate和rabbitmq队列(其中包含jms插件的rabbitmq)

在队列中生成消息之后,我希望使用不带jms的简单rabbitmq使用者来使用该消息

但是当我在我的消费者类中以字符串的形式获取这些消息时

该信息的格式如下:

wx.com.rabbitmq.jms.client.message.RMQTextMessage$e529erb2a65-a5dc-4bd7-bfe0-4c09237696261frmq.jms.message.destinationsr%com.rabbitmq.jms.admin.RMQDestinationHٍ&)zamqpzisquezistetemporarylamqpechangenametljava/lang/String;L amqpQueueNameq~LamqpRoutingKeyq~ldestinitionnameq~xptjms.durable.queuesttestq~q~wrmq.jms.message.delivery.modermq.jms.message.timestamp[Yrmq.jms.message.priorityrmq.jms.message.expirationrmq.jms.message.id'id:E529512742424242A65-a9dc-43467-fge4-4c092d42761fw{name=abhijeet1}

最后,我得到了实际的消息,{name=abhijeet1}

我怎样才能得到真正的信息

是否可以使用rabbit jms生产者和消费者生成消息,而使用简单的rabbit mq消费者生成消息

如果可能怎么办

我的制作人是:

package com.rabbitmq.jms.producer;

import java.util.HashMap;
import java.util.Map;

import javax.jms.ConnectionFactory;
import javax.jms.Session;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.jms.core.MessageCreator;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;

import com.rabbitmq.jms.admin.RMQConnectionFactory;

@SpringBootApplication
@EnableScheduling
public class RabbitmqJmsProducerApplication {
    @Autowired
    JmsTemplate jmsTemplate;
    int i;

    @Bean
    ConnectionFactory connectionFactory() {

        RMQConnectionFactory connectionFactory = new RMQConnectionFactory();
        connectionFactory.setUsername("username");
        connectionFactory.setPassword("password");
        connectionFactory.setVirtualHost("**********");
        connectionFactory.setHost("hostname");
        return connectionFactory;

    }

    @Scheduled(fixedRate = 5000L) // every 5 seconds
    public void publishQuote() {

        i++;

        MessageCreator messageCreator = (Session session) -> {
            System.out.println("message sent " + "abhijeet " + i);
            Map<String, String> map = new HashMap<>();

            map.put("name", "abhijeet " + i);
            return session.createTextMessage(map.toString());
        };

        jmsTemplate.send("test", messageCreator);
    }

    public static void main(String[] args) {
        SpringApplication.run(RabbitmqJmsProducerApplication.class, args);
    }
}

提前感谢。

为了有效地帮助您,最好显示您的代码。好的,我现在添加了代码。
package com.rabbitmq.consumer;

import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.util.EntityUtils;
import org.json.JSONObject;

import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import com.rabbitmq.client.QueueingConsumer;
import com.rabbitmq.client.QueueingConsumer.Delivery;

public class MailConsumer implements Runnable {
    private static boolean processMessges(Delivery delivery) throws Exception {



        String msg = new String(delivery.getBody(), "UTF-8");
        System.out.println("message is "+msg);




        return true;

    }

    @Override
    public void run() {
        try {
            ConnectionFactory factory = new ConnectionFactory();



            factory.setUsername("username");
        factory.setPassword("password");
        factory.setVirtualHost("**********");
        factory.setHost("hostname");

            Connection connection;
            connection = factory.newConnection();

            Channel channel = connection.createChannel();
            boolean removeAllUpTo = true;
            QueueingConsumer consumer = new QueueingConsumer(channel);
            channel.basicConsume("test", consumer);
            while (true) {

                QueueingConsumer.Delivery delivery = consumer.nextDelivery();

                if (delivery == null)
                    break;
                if (processMessges(delivery)) {
                    try {
                        long deliveryTag = delivery.getEnvelope().getDeliveryTag();
                        channel.basicAck(deliveryTag, removeAllUpTo);
                    } catch (Exception exception) {

                            System.out.println("Connection was failed");
                            continue;
                        }
                    }

                }
            }

        }


    }
}