java—如何向被请求方发送客户端的soap响应

2w2cym1i  于 2021-07-23  发布在  Java
关注(0)|答案(1)|浏览(405)

我正在开发一个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.
}
y1aodyip

y1aodyip1#

我已经部署了客户端wsdl,因为我们正在使用请求并将此请求转发给c。所以,我创建了我的one对象,并在object中Map了c响应的值。我已经把那个东西还给你了。使用拦截器,我已将该对象转换为所需的响应。

相关问题