【问题标题】:SOAP and Rest Webservice using Spring boot使用 Spring Boot 的 SOAP 和 Rest Web 服务
【发布时间】:2016-12-18 04:32:35
【问题描述】:

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

【问题讨论】:

  • 没有。由于 SOAP 请求基本上是 POST 请求,它不允许您将请求数据作为 URL 的一部分发送。
  • @arpit 所以我们只能通过 SOAP UI 工具发送 XML 格式的肥皂请求,对吧?
  • 是的!soap 只允许发送 xml
  • @Arpit 谢谢。是否可以在单个应用程序中同时开发 SOAP 和 REST。 1. Rest:通过 REST URL 将参数传递给应用程序。 2. SOAP:通过 SOAPUI 通过点击该应用程序的 SOAP URL 将 XML 传递给同一应用程序

标签: java spring rest soap spring-boot


【解决方案1】:

好吧,我不确定你的意图是什么,但关于 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 点

希望我能给你一些指示。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-29
    • 2018-06-21
    • 1970-01-01
    • 2015-03-10
    • 1970-01-01
    • 2010-12-23
    • 1970-01-01
    相关资源
    最近更新 更多