Web services 从技术上讲,要创建soap消息,WSDL文件是必须的?

Web services 从技术上讲,要创建soap消息,WSDL文件是必须的?,web-services,soap,web,wsdl,remote-access,Web Services,Soap,Web,Wsdl,Remote Access,我正在使用SoapUI生成soap请求。它提示我输入wsdl文件。我这样做了,它创建了soap风格的消息。一切都好 但我有一个疑问。如果我的webservice没有任何WSDL文件,我仍然可以手工生成soap风格的消息吗?如果可以,怎么做 或者,如果我知道Web服务需要输入两个int参数并返回一个字符串值,那么我是否可以仅通过这些有限的信息推测soap消息?在Java中:如果您有Web服务(注释类等),那么您的服务器在部署它时会创建一个WSDL文件。此WSDL可用于soapUi 如果您有任何结

我正在使用SoapUI生成soap请求。它提示我输入wsdl文件。我这样做了,它创建了soap风格的消息。一切都好

但我有一个疑问。如果我的webservice没有任何WSDL文件,我仍然可以手工生成soap风格的消息吗?如果可以,怎么做


或者,如果我知道Web服务需要输入两个int参数并返回一个字符串值,那么我是否可以仅通过这些有限的信息推测soap消息?

在Java中:如果您有Web服务(注释类等),那么您的服务器在部署它时会创建一个WSDL文件。此WSDL可用于soapUi


如果您有任何结构(端点、类、XSD等),您可以手工创建soap消息

如果您没有将WSDL用于soap消息,它将不会调用/发送此消息。因此,根据协议,wsdl文档是必需的元素。WSDL描述了如何调用服务、它需要什么参数以及它返回什么数据结构

发件人:

WSDL通常与SOAP和XML模式结合使用,以 通过Internet提供Web服务。连接到的客户端程序 Web服务可以读取WSDL文件以确定要执行的操作 在服务器上可用。使用的任何特殊数据类型都嵌入到 XML模式形式的WSDL文件。然后,客户机可以使用SOAP 使用 例如,HTTP上的XML



用于动态调用web服务。在本例中,作者不知道WSDL的描述。

如果您只是在执行请求,那么如果您知道您要请求的特定服务和您所说的参数,则不需要WSDL文件。您甚至可以手动创建请求,然后通过HTTP发送请求(例如,您可以使用编辑器在文件中创建请求,然后通过wget或curl发送)

作为一个例子,我将引用维基百科:

<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
  <soap:Header>
  </soap:Header>
  <soap:Body>
    <m:GetStockPrice xmlns:m="http://www.example.org/stock">
      <m:StockName>IBM</m:StockName>
    </m:GetStockPrice>
  </soap:Body>
</soap:Envelope>

国际商用机器公司
您需要更改的是soap:Body中的部分:当然是GetStockPrice(您正在访问的服务)和StockName(您可能有多个参数)


如果有疑问,您可以在套接字(例如netcat)上放置要侦听的内容,并使用WSDL使您的应用程序对其进行查询并查看确切信息,然后删除WSDL并“手动”工作。

WSDL的目的是描述服务


这种机器可读的描述允许计算机程序创建知道如何调用服务和处理响应的客户端。

我认为wsdl文件只是用来描述Web服务是什么。如果wsdl文件不存在,那么cilent调用该服务并不重要。不是吗?耶,是的。客户端无法调用该服务。您可以在没有WSDL的情况下创建soap消息,但客户端不能调用/发送它。