我对mule比较陌生,试图定义一个通过基于soap的Web服务接受请求XML的mule流。 XML基于复杂的模式,我已经使用WSDL2Java生成类Mule 3.2 flow和cxf:jaxws-service
接收到请求后,cxf:jaxws-service执行submitOrder方法(SubmitOrderRequest参数)。在执行此方法后,我想将请求XML转换为稍微不同的格式。然后这个XML需要被转发到另一个Web服务。问题是来自ServiceImpl的mule消息包含SubmitOrderResponse,而我仍然想处理SubmitOrderRequest。
<flow name="testService">
<http:inbound-endpoint address="http://localhost:62005/test"
exchange-pattern="request-response">
<cxf:jaxws-service serviceClass="com.test.ServicePortType" />
</http:inbound-endpoint>
<component class="com.test.ServiceImpl" />
<!-- transformer ref="MVIRequestTransformer"/-->
<!-- xm:object-to-xml-transformer/-->
<!-- logger message="XML payload is #[payload]" level="INFO"/-->
<!-- SEND TRASNFORMED MESSAGE TO ANOTHER SERVICE -->
</flow>
@WebService(endpointInterface = "com.pennmutual.services.mvi.MVIServicePort")
public class ServiceImpl implements ServicePortType {
...
@Override
public SubmitOrderResponse submitOrder(SubmitOrderRequest parameters) {
...
}
...
}
我的选择是什么。我可以想到以下内容 - 1.将请求对象放在上下文中的某个地方,稍后再进行处理。 2.将submitOrder的返回类型更改为Object,并返回SubmitOrderRequest而不是SubmitOrderResponse。
请建议最好的方法来处理这种情况。我正在使用骡子3.2。