WSDL 服务占位符解释

WSDL Service placeholder explanation

我是一个学习网络服务的新手。我试图理解 WSDL,然后开发一个 Java 项目。在WSDL内部,服务部分如下:

<wsdl:service name="MyService">
 <wsdl:port binding="tns:MyServicePortSoap11" name="MyServicePortSoap11">
     <soap:address location="https://localhost.myservice.local:400/wsg/ws"/>
 </wsdl:port>
</wsdl:service>

但是在网络服务演示中使用的端点只是https://MyService:400/ws。为什么地址中缺少 /wsg/?任何对此进行解释的文档或视频都会有所帮助。

WSDL 中的 <soap:address> 只是对您的工具的提示。当您从 WSDL 生成客户端代码时,该工具可以在生成的代码中使用此地址来预填充 Web 服务的地址,以便您可以使用生成的客户端代码进行调用。

但这只是一个提示。

Your WSDL and SOAP service are not the same thing。从 WSDL 生成客户端代码后,您可以使用该代码调用 Web 服务,无论它部署在何处,在任何类型的地址上,而不仅仅是 WSDL 中提到的地址。

理想情况下,WSDL 中的<soap:address> 和Web 服务的实际地址应该相同,以免引起混淆,但它们可以不同。 Web 服务的实际地址很重要,而不是来自 WSDL 的地址。