亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

獲取具有屬性的 RabbitMQ 主體

獲取具有屬性的 RabbitMQ 主體

紅顏莎娜 2022-12-15 15:54:10
我正在像這樣從 RabbitMQ 讀?。篶onnection = factory.newConnection();ch = connection.createChannel() ;String queueName = managerProps.getProperty("rmq.queue.name");ch.queueDeclare(queueName ,true,false,false, null) ;while (true) {    GetResponse chResponse = ch.basicGet(queueName, false);    logger.info("----" + new String(chResponse.getBody(), "UTF-8") + " ---\n");}這是我在日志中看到的:[Thread-5] INFO com.mycompany.RmqReader - ----?? ?wx .com.rabbitmq.jms.client.message.RMQTextMessage $b1213c86-10f4-4113-bd2f-45aaabce083f   ? ←rmq.jms.meamqpQueueNameq ~ ?L ?amqpRoutingKeyq ~ ?L ?destinationNameq ~ ?xp ? t ?jms.durable.queuest !MY.Queue.Name ~ ?q ~ ?z  ?O ?rmq.jms.message.delivery.mode?   ? ↓rmq.jms.message.timestamp?  ?j?∟ ↑rmq.jms.message.priority?   ? →rmq.jms.message.expiration?         ?rmq.jms.message.i 'ID:b1213c86-10f4-4113-bd2f-45aaabce083f   ♂ ?objectTransaction?? ?templateEndpoin -jtemplate://JSONDeliveryTemplateParallel.java ?deliveryLocatio +jms:queue:My.Queue.Name ?destinationIndex?   ? ?subsCutOffTime?     ♀breadcrumbI ♀1149808347.0 ?globalDeliveryUID? ?]? ?subscriptionNam §option_session_pubsub ?originalMessageI ♀1149808347.0 ?subscriptionDeliveryUID? ??8 ?transactionTimestamp?  ?j??(z  ?R   ?M[{"OptSession": {.... the actual body is here....}}] ---為什么我在這里看到標題?我如何實際提取身體?
查看完整描述

1 回答

?
當年話下

TA貢獻1890條經驗 獲得超9個贊

看起來您已經使用 RMQConnectionFactory 發布了符合 jms 的數據,現在您正在使用非 jms ConnectionFactory


請查看使用 RMQConnectionFactory 的示例消費者https://github.com/kunhaj/samples/blob/master/rabbitmq/src/main/java/RabbitMqConsumer.java


import com.rabbitmq.jms.admin.RMQConnectionFactory;

import javax.jms.*;


/**

 *  docker run -d --hostname my-rabbit --name 

 *   some-rabbit  -p 5672:5672 -p 15672:15672 rabbitmq:3-management

 */

public class RabbitMqConsumer {

    public static void main(String[] args) throws Exception {

        RMQConnectionFactory connectionFactory = new RMQConnectionFactory();

        connectionFactory.setUsername("guest");

        connectionFactory.setPassword("guest");

        connectionFactory.setVirtualHost("/");

        connectionFactory.setHost("localhost");

        connectionFactory.setPort(5672);

        connectionFactory.setDeclareReplyToDestination(false);

        Connection connection = connectionFactory.createConnection();

        connection.start();

        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

        Queue queue = session.createQueue("TEST-QUEUE");

        drainQueue(session, queue);

    }


    protected static void drainQueue(Session session, Queue queue) throws Exception {

        MessageConsumer receiver = session.createConsumer(queue);

        Message msg = receiver.receiveNoWait();

        while (msg != null) {

            String msgBody = ((TextMessage) msg).getText();

            System.out.println("recieved" + msgBody);

            msg = receiver.receiveNoWait();

        }

    }

}

另請參閱 JMS 和 AMQP 0-9-1 目標互操作性https://www.rabbitmq.com/jms-client.html#destination-interoperability


查看完整回答
反對 回復 2022-12-15
  • 1 回答
  • 0 關注
  • 111 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號