【问题标题】:@JmsListener throwing MessageConversionException@JmsListener 抛出 MessageConversionException
【发布时间】:2022-01-04 08:43:42
【问题描述】:

我正在尝试从 IBM MQ 异步接收消息:

@JmsListener(destination = "queue", containerFactory = "Factory", id = "start")
    public Mono<Void> requestProcess(Message message) {return Mono.just("").then();  
}

赶上:

Caused by: org.springframework.jms.support.converter.MessageConversionException: Cannot convert object of type [reactor.core.publisher.MonoLift] to JMS message. Supported message payloads are: String, byte array, Map<String,?>, Serializable object.

如果我将方法类型切换为简单的void,它会按预期工作。如何设置侦听器以非阻塞反应方式接收消息?

【问题讨论】:

    标签: spring-webflux ibm-mq spring-jms reactor spring-dsl


    【解决方案1】:

    失败的转换是requestProcess 的输入。

    @JmsListener 找到了 reactor.core.publisher.MonoLift 类型的发布者,但 requestProcess 期待 Message,它没有转化。

    解决方法是将requestProcess 的输入签名更改为

    @JmsListener(destination = "queue", containerFactory = "Factory", id = "start")
        public Mono<Void> requestProcess(MonoLift<?> publisher) {
           ...
    
        }
    

    并相应地修改方法体。

    【讨论】:

      猜你喜欢
      • 2018-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-13
      • 2020-07-06
      • 2019-10-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多