Apache Camel Spring Webers服务SpringbeServiceConsumer不会从中读取答案



我使用Camel Spring-WS组件通过在路线的'部分中指定肥皂Web服务来揭示SOAP Web服务。

恰好是,在路由逻辑的末尾,交换的"输出"消息没有填充,但是" in"消息包含所需的响应数据。

生产者组件的默认约定是在生成最终响应时不存在" outher"的"在"交换"消息中使用。

SpringWebserviceConsumer仅在最终交换带有" OUT"消息时支持方案。.java:

public void invoke(MessageContext messageContext) throws Exception {
    Exchange exchange = getEndpoint().createExchange(ExchangePattern.InOptionalOut);
    populateExchangeFromMessageContext(messageContext, exchange);
    // start message processing
    getProcessor().process(exchange);
    if (exchange.getException() != null) {
        throw exchange.getException();
    } else if (exchange.getPattern().isOutCapable()) {
        Message responseMessage = exchange.getOut(Message.class);
        if (responseMessage != null) {
            Source responseBody = responseMessage.getBody(Source.class);
            WebServiceMessage response = messageContext.getResponse();
            configuration.getMessageFilter().filterConsumer(exchange, response);
            XmlConverter xmlConverter = configuration.getXmlConverter();
            xmlConverter.toResult(responseBody, response.getPayloadResult());
        }
    }
}

这将导致对肥皂请求产生的任何响应。

问题:这是骆驼 - 弹簧WS的错误/限制,还是我没有正确使用Spring-WS消费者?

否则,听起来我必须明确设置Exchange Platts以进行INOUT?

直到骆驼10888以工作方式发布,在路线中,您可以将Exchange模式设置为InOut,以获取Exchange的"脱机"消息:

.setExchangePattern(ExchangePattern.InOut) 

相关内容

  • 没有找到相关文章

最新更新