如何使用spring-ws WebServiceTemplate从xml文件手动创建响应

时间:2018-08-02 18:17:09

标签: java spring soap spring-ws

我在Spring Boot应用程序中使用Spring-WS将肥皂请求发送到端点并获得肥皂响应。效果很好。

我使用以下块处理消息:

public ServiceResponseInfo  invoke(ServiceRequestInfo csiRequest) {
    JAXBElement<ServiceRequestInfo> request = createRequest(csiRequest);

    JAXBElement<ServiceResponseInfo> responseElement    =
        (JAXBElement<ServiceResponseInfo>) getWebServiceTemplate().marshalSendAndReceive(request, new Headers(API));

    return responseElement.getValue();
}

现在,我正在尝试为此服务编写我们称为“组件测试”的内容。它与单元测试和集成测试都有相似之处。它可以模拟外部端点,但可以执行所有服务代码,而不仅仅是单个类。

在此组件测试中,我想做的是存储一组Soap XML文件,这些文件代表了我可能从模拟端点获得的响应。我需要将存储的肥皂XML响应转换为可以注入到模拟处理中的未编组对象。过去,我使用过“特设” Soap处理引擎,这些引擎并没有抽象所有内部处理。花费了更多的维护,但是我可以清楚地看到如何在旧的框架中执行这种操作。

如何用已有的Spring-WS WebServiceTemplate做到这一点?

更新

与此相关的另一个复杂之处是,其中一些测试响应将是SOAP错误。我还需要一个明确的策略来处理这些问题。

0 个答案:

没有答案