我正在尝试将一些额外的静态数据添加到入站http消息(作为URL参数接收)有效负载,然后再将其提交到基于出站http表单的端点。我的mule配置如下:
<flow name="login" doc:name="login">
<http:inbound-endpoint exchange-pattern="request-response" address="http://localhost:8081/login" doc:name="Login"/>
<http:body-to-parameter-map-transformer doc:name="Body to Parameter Map"/>
<http:outbound-endpoint address="http://localhost:8090/mayapp/Main/login.do"
method="POST" contentType="application/x-www-form-urlencoded" exchange-pattern="request-response">
</http:outbound-endpoint>
</flow>
以上将URL参数转换为http表单POST(名称/值对)非常好。我现在需要的是能够为POST(ed)数据添加新的名称 - 值对吗?我发布的表单需要一些静态数据(作为隐藏的HTML字段发布),我希望将其作为转换过程的一部分来处理。
我已成功使用自定义组件完成此操作。我想知道是否有一种更简单的方法来处理这个使用Mule的本地变换器/消息处理器!
答案 0 :(得分:5)
首先,我会使用变换器而不是组件,因为它实际上是对有效载荷数据进行的转换。
第二,我想不到另一个变换器而不是Groovy变换器来修改由body-to-parameter-map-transformer创建的Map有效负载。类似的东西:
<script:transformer>
<script:script engine="groovy">
<script:text>
payload['newKey'] = 'newValue'
</script:text>
</script:script>
</script:transformer>
答案 1 :(得分:0)
您也可以使用表达式组件:
<expression-component doc:name="change_payload">
<![CDATA[#[ message.payload = 'foo';]]]>
</expression-component>