【问题标题】:Sending data through SOAP client with WSDL included通过包含 WSDL 的 SOAP 客户端发送数据
【发布时间】:2019-06-03 07:13:22
【问题描述】:

我有一个新项目要做,但由于我是 SOAP 新手,我需要一些帮助才能开始。我需要通过 SOAP 请求发送一些下载到文件的数据,并从服务器获取响应。我不知道如何处理文件 -> 以及如何通过带有该数据的肥皂发送请求?

此外,数据必须通过 SOAP 以 XML 格式发送 - 我有一个指南,但由于我从未使用过 SOAP,因此我需要额外的帮助。

我以为我使用 JAXB Marshaller 将数据编组为 XML 格式,但我不知道如何将其进一步发送到服务器?

如果您有更好的示例,我们将不胜感激。

【问题讨论】:

    标签: java xml web-services soap


    【解决方案1】:

    您需要以 SOAP 格式制定您的请求,通常看起来像这样:

    POST http://some.url:1337/someService_WS
    Accept-Encoding: stuff
    Content-Type: text/xml;charset=UTF-8
    SOAPAction: "some:urn:here:1/someService/someOperation"
    Content-Length: 300 (whatever content lenght you have withing the envelope)
    Host: someservername.com:1337
    Connection: Keep-Alive
    User-Agent: Apache-HttpClient/4.5.1 (Java/2.0) (use your own stuff ;))
    
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="some:urn:here:1">
       <soapenv:Header/>
       <soapenv:Body>
          <SomeOperation xmlns="some:urn:here:1">
             <someElement>someValue123</someElement>
          </SomeOperation>
       </soapenv:Body>
    </soapenv:Envelope>
    

    真正的所有 SOAP 都是这种用于发送和接收 SOAP 信息的格式,它是一种标准/协议。在 SOAP 中制定消息后,您需要将消息放在某个队列上以供服务接收,或者将其发送到 Web 服务的 url 以便对其进行处理。您可以使用各种工具来简化此操作。我个人使用 SOAPUI/ReadyAPI,它有一个免费版本和一些不错的入门教程。

    https://www.soapui.org/downloads/soapui.html

    希望对您有所帮助! 干杯,

    【讨论】:

      【解决方案2】:

      你可以使用:

      命令:wsimport 解析 CompA WSDL 文件的命令。

      例如:- wsimport -keep -verbose http://compA.com/ws/server?wsdl

      使用它,您可以与服务进行通信。

      【讨论】:

      • 我已经设法从 WSDL 导入所有类。例如,第一个请求必须是,调用特定服务时获取token,第二个请求是发送XML数据的调用,第三个是检查是否有错误,第四个是关闭发送。我应该为所有调用创建单独的方法吗?
      猜你喜欢
      • 1970-01-01
      • 2014-12-30
      • 2010-12-01
      • 1970-01-01
      • 2020-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-02
      相关资源
      最近更新 更多