繁体   English   中英

如何从Java组件发送不同的有效负载?

[英]How to send a different payload from java component?

我有一个与JMS消息和Java组件一起处理批处理过程的m子流。 完成工作后,我需要发送电子邮件以通知用户此过程的结果。 我目前正在Java组件中处理所有这些内容,包括处理和发送电子邮件。 我想取消电子邮件发送操作的耦合,以便在其他流程中重用此组件,而不是将代码从Java组件复制/粘贴/调整到其他组件。 我的问题是,当流程接收Serializable参数(在这种情况下,是扩展Serializable的自定义类)时,我要发送到此组件的有效负载是Map<String, Object> 如何从Java组件发送有效负载之前更改其有效负载Map<String, Object>在调用电子邮件组件之前,我知道在Java Map<String, Object>设置的参数?

目前,这是我所拥有的:

<flow name="SomeBatchProcessFlow">
    <jms:inbound-endpoint queue="${some.batch.process}"
        connector-ref="JmsConnectorRef" />
    <component>
        <method-entry-point-resolver>
            <include-entry-point method="foo" />
        </method-entry-point-resolver>
        <spring-object bean="someBatchProcessComponent" />
    </component>
    <!--
        what to put here to change the payload for the Map<String, Object> I've prepared
        in SomeBatchProcessComponent#foo method?
    -->
    <jms:outbound-endpoint address="jms://${queues.emailSend}"
        connector-ref="JmsConnectorRef" />
</flow>

<flow name="EmailSendFlow">
    <jms:inbound-endpoint queue="${queues.emailSend}"
        connector-ref="JmsConnectorRef" />
    <component>
        <method-entry-point-resolver>
            <include-entry-point method="sendEmail" />
        </method-entry-point-resolver>
        <spring-object bean="emailSenderComponent" />
    </component>
</flow>

我知道我可以从SomeBatchProcessComponent#foo手动发送JMS消息,但我更希望由handle子处理此工作以使其保持解耦状态。

要在the子流中设置有效负载,请使用<set-payload value="#[newPayload]"/> ,其中newPayload是局部变量。

要更改Java组件中的有效负载,请返回Map<String, Object>对象,该对象将被推送到JMS

您也可以查看vm queues而不是使用JMS发送电子邮件,

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM