mule动态设置soap操作

mule动态设置soap操作,mule,Mule,在我的流中,我有一个调用服务的soap客户端。由于我们使用的是3种不同于服务的操作,所以我想在Mule soap组件的“客户端属性”下动态填充“操作”字段。我现在的工作方式是: start flow -> message transformation -> choice flow control (based on the message type) choice 1. sub flow A -> soap client with operation A choice 2.

在我的流中,我有一个调用服务的soap客户端。由于我们使用的是3种不同于服务的操作,所以我想在Mule soap组件的“客户端属性”下动态填充“操作”字段。我现在的工作方式是:

start flow -> message transformation -> choice flow control (based on the message type) 
choice 1. sub flow A -> soap client with operation A 
choice 2. sub flow B -> soap client with operation B 
choice 3. sub flow C -> soap client with operation C
我希望在运行时根据消息动态设置“Operation”字段,而不是有三个不同的子流

start flow -> message transformation -> set the operation field -> soap client with the correct operation 
可能吗?使用Mule CE 3.3.1。提前感谢。

要实现您的目标:

  • cxf:jaxws-client
    元素中删除
    operation
    属性
  • cxf:jaxws-client
    元素之前添加将操作设置为出站消息属性,并使用:

    <set-property propertyName="operation" value="#[...]" />
    
    
    
    其中,
    #[…]
    表示从消息中提取操作名称的MEL表达式


您所说的“Mule soap组件”是什么意思?它是一个
cxf:jaxws客户端吗?
?是的,完全正确。我想在运行时更改cxf:jaxws-client-operation属性,因为我们是来自同一个服务的3个不同操作。我根据消息类型在标头中设置了一个操作属性,然后按照您的建议,使用MEL提取操作值,并将其设置为:“现在我只有一个子流可以执行所有三个操作,非常好,再次感谢。很高兴它能工作!”!建议:使用MEL而不是旧式/不推荐的表达式语法,即:
是的,很好的建议。我将改变它并测试它。非常感谢。