【问题标题】:Spring Boot Cloud + RabbitMQSpring Boot Cloud + RabbitMQ
【发布时间】:2018-01-18 23:22:29
【问题描述】:

我是 Spring、Spring Boot 和 RabbitMQ 的新手。不过我是一个不错的程序员/问题解决者。

最近我开始阅读这本书 Learning Spring Boot 2.0 - Second Edition,可以在这里找到代码https://github.com/learning-spring-boot/learning-spring-boot-2nd-edition-code。 我认为事情对我来说进展顺利......这里和那里有一些小问题,但只要我能够进步和学习,我认为我做得很好。

我刚刚读完这本书的一半,然后作者开始谈论 Spring Cloud Streams 和 RabbitMQ。 我现在正在使用这里找到的代码https://github.com/learning-spring-boot/learning-spring-boot-2nd-edition-code/tree/master/6/part3

我的代码没有产生错误,但也没有产生预期的结果。当我运行应用程序时,图像 cmets 似乎没有被保存或显示。我收到这样的日志消息

o.s.a.r.c.CachingConnectionFactory :创建新连接: SpringAMQP#2920fd66:0/SimpleConnection@59ae4da8 [代表=amqp://guest@127.0.0.1:5672/, localPort= 57615]

当我提交数据时。

但是这本书说我应该收到如下消息:

o.s.integration.channel.DirectChannel :在通道输入上发送, 消息:GenericMessage [payload=Comment(id=null,imageId=book.jpg)]

查看我应该得到什么似乎认为问题可能与渠道有关。也许问题不在于渠道,也许是其他问题。

我应该如何找到问题的确切原因?

【问题讨论】:

    标签: spring-boot rabbitmq spring-cloud-stream


    【解决方案1】:

    我不熟悉 Greg 的书,但我刚刚将该应用程序加载到 eclipse 中,它似乎对我来说很好用。上传图片后,它会显示在列表中。

    然后我对图像发表评论,然后我看到了...

    2018-01-19 00:04:41.046 DEBUG 16612 --- [ctor-http-nio-3] o.s.integration.channel.DirectChannel:在通道“输出”上预发送,消息:GenericMessage [payload=com.greglturnquist .learningspringboot.cmets.Comment@4d4f990f, headers={id=0651f9b9-e38b-1557-67dd-bc19acae8af1, timestamp=1516338281044}]

    ...

    2018-01-19 00:07:35.570 DEBUG 17539 --- [g-spring-boot-1] os.integration.channel.DirectChannel : preSend on channel 'input', message: GenericMessage [payload=byte[64 ],标头={amqp_receivedDeliveryMode=PERSISTENT,amqp_receivedRoutingKey=learning-spring-boot-cmets,amqp_receivedExchange=learning-spring-boot-cmets,amqp_deliveryTag=1,amqp_consumerQueue=learning-spring-boot-cmets.learning-spring-boot,amqp_redelivered =false,id=43094b53-d9b5-115e-db44-dcef73a0a9c4,amqp_consumerTag=amq.ctag-MGTGY6EuPidJy3BH7_j2zw,contentType=application/json,timestamp=1516338455570}]

    但我确实看到了

    2018-01-19 00:07:54.291 错误 17539 --- [ctor-http-nio-3] o.s.w.s.h.ResponseStatusExceptionHandler:响应状态 405,原因为“不支持请求方法 'GET'”

    我不确定您是否应该看到已发布的 cmets。

    我应该如何找到问题的确切原因?

    第一步是为根记录器(或所有org.springframework)启用调试记录。

    您可能想reach out to Greg on his web site

    【讨论】:

    • 看起来问题的原因确实是频道的处理方式。但是,不是在 Java 代码中,而是在 application.yml 中。有时这一切都归结为一个小的简单配置文件:(
    猜你喜欢
    • 1970-01-01
    • 2018-01-24
    • 2018-10-07
    • 2020-04-18
    • 1970-01-01
    • 2017-09-28
    • 1970-01-01
    • 2015-09-18
    • 1970-01-01
    相关资源
    最近更新 更多