【问题标题】:Force format for ibm mq messagesibm mq 消息的强制格式
【发布时间】:2019-08-26 09:21:33
【问题描述】:

我们使用 Spring 集成将消息从 RabbitMQ 发送到 MQSeries。这很好用。

<int-jms:outbound-channel-adapter channel="toJms" .../>

对于某些消费者,我们需要强制 ibm 消息或字符集的格式 我们已经使用标题丰富器来强制一些属性:

<int:header-enricher id="theHeaderEnricher" input-channel="fromRabbit" output-channel="toJms" > 

我们如何更改消息的 mq 格式和字符集?格式不是 JmsHeaders,而是消息的属性。这可以通过xml配置来完成吗?

感谢您的帮助

埃里克

【问题讨论】:

    标签: jms spring-integration ibm-mq


    【解决方案1】:

    在发送到 &lt;int-jms:outbound-channel-adapter&gt; 之前,您可以在 POJO 方法调用之间放置一个 &lt;transformer&gt;,然后您可以在其中执行任何您需要的重新格式化操作。

    不幸的是,您的问题并不清楚该格式的外观以及您希望从中更改什么。

    因此我的回答和你的问题一样笼统。

    请在文档中查看有关转换器的更多信息:https://docs.spring.io/spring-integration/reference/html/#messaging-transformation-chapter

    【讨论】:

    • 应用程序 A 通过 MQSeries 通道与应用程序 B 讨论。我们将 MQSeries (A) 替换为 RabbitMQ。 Spring 集成对于简单的消息情况非常有效。一些旧的 jms 发布者使用 ibm 属性设置属性(mq 消息的格式...)。这些属性在目标 MQServer 上使用期间使用:设置属性示例: MQMessage messageMQ = new MQMessage (); messageMQ.format = "";messageMQ.persistence = 1;您认为在我的通道 jms 中可以设置这些属性吗?
    • 感谢您的回复 Artem。我在出站通道之前设置了一个转换器,因此我可以将 org.springframework.messaging.Message 转换为具有格式选项的 MQMessage public MQMessage transform(Message&lt;?&gt; msg) throws Exception 但我有以下例外:Cannot convert object of type [com.ibm.mq.MQMessage] to JMS message. Supported message payloads are: String, byte array 你有什么建议吗?我应该改用服务激活器吗?这个服务激活器会向 mqseries 发送消息吗?感谢您的帮助
    猜你喜欢
    • 1970-01-01
    • 2021-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-04
    • 2022-07-21
    相关资源
    最近更新 更多