Mule 3:启用相关ID
我正在将Mule 1.3应用程序升级到Mule 3.2.1。其中一个出站路由器似乎被配置为在Mule消息还没有相关ID时生成相关ID。这是通过一个名为Mule 3:启用相关ID,mule,Mule,我正在将Mule 1.3应用程序升级到Mule 3.2.1。其中一个出站路由器似乎被配置为在Mule消息还没有相关ID时生成相关ID。这是通过一个名为enableCorrelation的属性完成的 <mule-descriptor name="theName" implementation="org.mule.components.rest.RestServiceWrapper"> <inbound-router ... /> <outbound-r
enableCorrelation
的属性完成的
<mule-descriptor name="theName" implementation="org.mule.components.rest.RestServiceWrapper">
<inbound-router ... />
<outbound-router>
<router className="org.mule.routing.outbound.OutboundPassThroughRouter" enableCorrelation="IF_NOT_SET">
<endpoint address="vm://..." />
</router>
</outbound-router>
<properties>
<property name="serviceUrl" value="..." />
</properties>
</mule-descriptor>
如何将此功能转换为Mule 3配置文件?在Mule 3标记中,我没有看到任何与关联ID相关的XML属性。以下是我迄今为止创建的Mule 3流程:
<flow name="theName">
<inbound-endpoint ... />
<http:rest-service-component serviceUrl="..." />
<vm:outbound-endpoint path="..." />
</flow>
谢谢。Mule 3中提供了
启用相关性
标志:
- 总之,像现在不鼓励使用的“直通路由器”
- 在少数情况下,如
,需要它集合拆分器
恐怕您必须创建一个自定义转换器来模拟上述行为之外的其他行为。David谢谢。我似乎无法使用“pass-through-router”元素而不得到XML验证错误。我尝试将它包装起来,并将其放入
出站端点
元素中,但都不起作用。是否必须包含名称空间?我看到的一些示例显示它与服务
…我是否必须使用服务
而不是流
?这是正确的,传统路由器只能与服务
结构一起使用,您不应该再使用它,因为它将在未来的Mule主要版本中消失。所以我想这意味着我应该创建一个自定义的转换器(我甚至需要启用关联吗?默认情况下,是否将关联ID添加到所有Mule消息中?关联仅适用于某些类型的路由操作,如拆分。除非您的应用程序在这方面有特殊要求,否则不需要担心关联ID。不,Mule默认情况下不创建关联ID,e默认情况下,每条消息都有一个唯一的ID。一些传输在它们创建的消息(如JMS)与低级概念(如JMSCorrelationID标头)匹配时,会设置相关ID,但大多数传输不设置相关ID。我的流使用Quartz定期调用自己。流发出HTTP请求,转换HTTP响应(我认为是XML)从字节数组到字符串,然后将字符串发送给电子邮件中的某人。当邮件路由到smtp:outbound endpoint
时,邮件正文中包含的是邮件正文,还是Mule邮件的其他方面也包含在正文中(如入站属性)?