使用Spring启动的SOAP和Rest Webservice

时间:2016-12-18 04:32:35

标签: java spring rest soap spring-boot

我正在开发包含Soap和rest Spring Boot的第一个webservice应用程序。我将url中的Request作为参数传递。我能够在URL中传递Rest服务请求。是否可以在SOAP webservice的网址中发送请求?

1 个答案:

答案 0 :(得分:2)

好的我不确定你的意图是什么,而是关于SOAP。

---------------                      ----------------
|             |   someMethodInvoke   |              |
|  Your API   | -------------------->| WEB Service  |
|             |<-------------------- |              |
---------------    someResult        ----------------

现在参加与WS的通信,您首先需要拥有该API的架构或.WSDL,您可以从中生成用于进行所需调用的对象。

我个人正在使用JAXB从架构生成.java类。

在调用之后,自我org.springframework.ws.client.core.WebServiceTemplate就是完成工作的事情。您可以使用marshalSendAndReceive

例如:

public class SomeService extends WebServiceGatewaySupport {
     ObjectFactory oFactory = new ObjectFactory();

     public ExpectedResultObject someMethodInvoke(RequestObjectGeneratedFromSchema request){
            JAXBElement<ExpectedResultObject> response = (JAXBElement<ExpectedResultObject>) getWebServiceTemplate()
                .marshalSendAndReceive("http://yourURL.com", oFactory.createreRequestObjectGeneratedFromSchemaInputMessage(request));  
            return response.getValue();
     }
}

首先扩展WebServiceGatewaySupport,以便您可以调用getWebServiceTemplate(),它恰好返回您所需的内容:org.springframework.ws.client.core.WebServiceTemplate。以下是如何使用WebServiceTemplate

的示例

当然有许多因素,如安全性,连接性等,可能应该设置。但这取决于WS。但基本上就是这样:

  1. 从WSDL(架构)生成.java类
  2. 使用信息填充生成的对象
  3. 使用一些WebServiceTemplate来调用END点
  4. 希望我给你一些指示。