【问题标题】:Spring integration Java DSL: specify custom deserializerSpring集成Java DSL:指定自定义反序列化器
【发布时间】:2016-10-18 11:40:56
【问题描述】:

我有通过 JMS 传输到通过通道适配器侦听队列的组件的对象:

IntegrationFlows
                .from(Jms.messageDriverChannelAdapter(connectionFactory)
                        .destination(inputQueue)
                )

但是这种设置只提供了接收ObjectMessage 的可能性,但是我想提供自定义解串器,它也能够接受BytesMessage。所需的设置如下所示:

IntegrationFlows
                .from(Jms.messageDriverChannelAdapter(connectionFactory)
                        .destination(inputQueue)
                        .deserializeWith((javax.jms.Message message) -> new org.springframework.messaging.Message(){}) // Does not exist, but desired
                )

非常感谢。

【问题讨论】:

    标签: java spring jms spring-integration


    【解决方案1】:

    反序列化逻辑是org.springframework.jms.support.converter.MessageConverter 的一部分,您可以将其指定为:

    .from(Jms.messageDriverChannelAdapter(connectionFactory)
            .destination(inputQueue)
            .jmsMessageConverter(...)
     )
    

    我理解您希望使用 Lambda 实现这一点,但如果可以通过现有抽象来实现,我认为没有理由引入额外的逻辑。

    【讨论】:

    猜你喜欢
    • 2022-07-21
    • 2018-02-19
    • 2015-02-17
    • 2019-05-07
    • 2020-01-30
    • 2023-04-10
    • 2022-07-01
    • 2021-11-07
    • 1970-01-01
    相关资源
    最近更新 更多