如何从Spring Boot调用SOAP服务

时间:2018-10-26 19:55:57

标签: java spring web-services spring-boot soap

我有SOAP端点和SOAP信封有效负载请求,我想从我的Spring启动应用程序中调用SOAP端点。

我担心的是如何使用下面的有效负载请求来调​​用SOAP端点,我是SOAP服务的新手-我尝试在google中搜索最佳方法,但大多数方法令人困惑。我感到困惑的是,在调用SOAP服务时如何在SOAP负载请求下方发送消息,我是否需要转换Java对象?我不需要任何编码,只是我需要使用Spring Boot编写Soap客户端的正确方法

SOAP端点:http://localhost:8080/services/helloService

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:oas="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" 
xmlns:sys="http://adsfdf/sadfasdf/sdfdas" xmlns:urn="urn:com.dsafasdfdsfsaf" 
xmlns:v1="http://sdfasdfdasf">
   <soapenv:Header>
      <v1:ServiceRequestInfo>
         <v1:RequestID>8383</v1:RequestID>
      </v1:ServiceRequestInfo>
   </soapenv:Header>
   <soapenv:Body>

   </soapenv:Body>
</soapenv:Envelope>

2 个答案:

答案 0 :(得分:0)

首先,您需要一个描述消息模型的模式(WSDL文件)。您将其放入源代码(或在线)中,并使用一个从架构生成Java类的插件。例如可以是maven-jaxb2-plugin

一旦生成了类,就应该使用WS客户端。例如,可以是spring-ws-core软件包中的WebServiceGatewaySupport。

有关更多详细信息,我推荐本教程:https://spring.io/guides/gs/consuming-web-service/

答案 1 :(得分:0)

首先,您必须选择是使用axis还是cxf调用服务。

创建一个动态Web项目。 使用WSDL和cxf或axis库创建一个Web服务客户端并生成客户端文件。 https://help.eclipse.org/mars/index.jsp?topic=%2Forg.eclipse.jst.ws.cxf.doc.user%2Ftasks%2Fcreate_client.html

您可以使用这些文件来调用服务。