Jaxb Mule CXF客户端并接收一个未经授权的对象

Jaxb Mule CXF客户端并接收一个未经授权的对象,jaxb,cxf,mule,Jaxb,Cxf,Mule,我尝试将cxf:jaxws客户端与http出站端点结合使用,以使用mule3.3使用web服务。我已经阅读了许多源代码(例如),这些源代码指示如果我想接收操作返回的未经签名的Java对象,那么cxf:jaxws-client元素应该放在出站端点内,例如: <http:outbound-endpoint host="localhost" port="9001" path="crmService?wsdl"> <cxf:jaxws-client operation="getS

我尝试将cxf:jaxws客户端与http出站端点结合使用,以使用mule3.3使用web服务。我已经阅读了许多源代码(例如),这些源代码指示如果我想接收操作返回的未经签名的Java对象,那么cxf:jaxws-client元素应该放在出站端点内,例如:

<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元素的子元素”。如果不允许执行上述操作,我如何获取操作返回的未编组对象?

因此问题在于Studio不支持端点内部的嵌套MP。您需要做的是将jaxws客户端放在出站端点之前

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

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


Eva

通常,
cxf:jaxws-client
放在
http:outbound端点之前。