java如何向被请求方发送客户端的SOAP响应
我正在开发一个Spring引导应用程序,它充当两个组件之间的通道。它使用SOAP请求并生成SOAP响应
例如:-
A->;主叫方
B->;我的组件
C->;客户方
A<-&燃气轮机;B<-&燃气轮机;C
以前,A和C直接通过SOAP操作相互连接。C方正在使用RPC编码的WSDL
我已经使用下面的代码部署了party C WSDL接口。因为我需要将请求转发给C并处理来自A的请求
使用如下所示的@Endpoint
注释和@XPathParam
读取标记值来创建端点
我想将来自C方的SOAP响应返回给A方,但我不知道如何将来自C方的SOAP响应返回给A方
一个提示会很有帮助
@Bean
public Wsdl11Definition wsdl11Definition(){
SimpleWsdl11Definition simpleWsdl11Definition = new SimpleWsdl11Definition();
simpleWsdl11Definition.setWsdl(new ClassPathResource("/wsdl/calculator.wsdl"));
return simpleWsdl11Definition;
}
@Bean
public ServletRegistrationBean<MessageDispatcherServlet>
messageDispatcherServlet(ApplicationContext applicationContext){
MessageDispatcherServlet messageDispatcherServlet = new MessageDispatcherServlet();
messageDispatcherServlet.setApplicationContext(applicationContext);
return new ServletRegistrationBean<>(messageDispatcherServlet, "/medium/ws/*");
}
@ResponsePayload
@PayloadRoot(namespace = "http://medium.com/types/calculator", localPart = "AdditionInput")
public Output addition(@XPathParam("lineId") String lineID){
// Calling Party C and creating Request Using Apache Axis tool for party C
// String response = SOAP Response from Party C.
}
# 1 楼答案
我在使用请求并将此请求转发给C时部署了客户端WSDL。 所以,我创建了我的one对象,并将C响应的值映射到该对象中。我已将该对象返回作为响应。使用拦截器,我已将该对象转换为所需的响应