我正在开发一个spring引导应用程序,它充当两个组件之间的通道。它使用soap请求并生成soap响应。
例如:-
主叫方
b->我的组件
c->客户方。
a<->b<->c
以前,a和c直接通过soap操作相互连接。c方正在使用rpc编码的wsdl。
我已经使用下面的代码部署了party c wsdl接口。因为我需要将请求转发给c并处理来自a的请求。
使用创建终结点 @Endpoint
注解如下和 @XPathParam
读取标记值。
我想把soap回复还给甲方。来自丙方。但无法弄清楚如何将来自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条答案
按热度按时间y1aodyip1#
我已经部署了客户端wsdl,因为我们正在使用请求并将此请求转发给c。所以,我创建了我的one对象,并在object中Map了c响应的值。我已经把那个东西还给你了。使用拦截器,我已将该对象转换为所需的响应。