通过包含WSDL的SOAP客户端发送数据

时间:2019-06-03 07:13:22

标签: java xml web-services soap

我有一个新项目要制作,但是由于我是SOAP新手,所以需要一些帮助来开始。我需要通过SOAP请求发送一些数据,这些数据会下载到文件中,并从服务器获得响应。我不知道该怎么处理文件->以及如何通过soap发送带有该数据的请求?

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

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

所有帮助将不胜感激-如果您有一些更好的例子。

2 个答案:

答案 0 :(得分:1)

您可以使用:

命令:wsimport命令用于解析CompA WSDL文件。

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

使用此功能,您可以与服务进行通信。

答案 1 :(得分: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

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