Mule CXF客户端并接收一个unmarshaled对象

时间:2012-07-05 09:23:44

标签: jaxb cxf mule

我正在尝试将cxf:jaxws-client与http出站端点结合使用,以使用Mule 3.3来使用Web服务。我已经阅读了许多来源(例如Mule CXF Marshall Response),表明我是否想要接收我的操作返回的解组Java对象,cxf:jaxws-client元素应该放在outbound-endpoint中,例如:类似的东西:

<http:outbound-endpoint host="localhost" port="9001" path="crmService?wsdl">
   <cxf:jaxws-client operation="getSomething" serviceClass="com.something.Service" />
</http:outbound-endpoint>

但是,当我尝试这个时,我在Mule Studio中遇到一个模式错误,声明“JAX-WS客户端不允许成为元素HTTP的子节点”。如果不允许上述操作,如何获取操作返回的未编组对象?

1 个答案:

答案 0 :(得分:2)

所以问题是Studio不支持端点内的嵌套MP。您需要做的是将jaxws-client放在出站端点之前。

由于CXF MP的工作方式,它将处理以下MP,然后返回到将解组响应的jaxws客户端。因此,出站端点之后的有效负载将成为soap消息。要获取POJO,您需要使用jaxws客户端和出站端点声明子流。子流程执行后,主流程将根据需要获取POJO。

我们需要更新文档,以便明确此行为。

HTH EVA