0

我正在尝试使用 spring bean 使用会话变量 Text 代码来丰富 mule 消息。流程代码

<spring:beans>
    <spring:bean id="enrichService" class="com.enrich.EnricherService"/>
</spring:beans>
<flow name="HeaderEnricherFlow1" doc:name="HeaderEnricherFlow1">
    <file:inbound-endpoint path="C:/txtFile" responseTimeout="1000" doc:name="Inbound File"/>
    <byte-array-to-string-transformer doc:name="Byte Array to String"/>
    <enricher target="#[sessionVars:TextCode]" doc:name="Header Enricher">

     <core:component>
     <spring-object bean="enrichService"/>
     </core:component>
    </enricher>
    <logger level="INFO" doc:name="Logger" message="#[sessionVars:TextCode]"/>
</flow>

丰富服务方法

公共字符串丰富资源(@Pa​​yload 字符串有效负载){

    System.out.println("Payload:::::::::" + payload);

    String result="Text3";

    return result;
}

我正在从丰富的服务类 EnrichService 方法enrichmentResource 返回我需要在会话变量 TextCode 中设置的值,但它没有被设置。

4

2 回答 2

1

您提到的格式是正确的,使用浓缩器是最清晰的方式或写这个。但是,我会考虑删除组件元素的核心前缀,因为考虑到您已经将 ns 核心用作根命名空间,这是多余的。

此外,鉴于您没有特殊的入口点解析器,我猜您只有一个方法或一个非常简单的类,为了提高性能,我要么设置一个快速入口点解析器,要么只使用调用消息处理器。此外,如果性能非常相关,您可以从那里接收消息作为参数并设置属性,而不是使用 enritcher。

于 2015-01-04T14:35:31.073 回答
0

我通过使用表达式“#[sessionVars['TextCode']]”实现了这一点。之前是用错误的语法“#[sessionVars:TextCode]”引用表达式。

于 2015-01-04T11:41:58.707 回答