我对 mule 比较陌生,并试图定义一个 mule 流,该流通过基于肥皂的 Web 服务获取请求 XML。XML 基于复杂的模式,我使用 WSDL2Java 生成了类
收到请求后 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。