我是 Web 服务的新手,在直接修改 wsdl 以返回自定义类型而不是字符串时遇到问题
这是 WSDL -> http://www.webservicex.net/globalweather.asmx?WSDL
是否可以编辑 WSDL 以返回自定义类型作为响应,而无需知道 Web 服务在远程端是如何定义的?
WSDL 是服务提供的描述如何与服务交互的协定。这是由 WSDL 完成的,它描述了如何调用服务、要发送哪些数据以及您将接收什么。您不能更改不属于您的 WSDL。一旦 WSDL 部署并运行,它本质上就是服务提供者和消费者之间关于工作方式的只读协定。
更改 WSDL 意味着您可能需要更改服务的代码。在您的示例中,WSDL 似乎是您没有源代码控制的服务,因此您无法修改该 WSDL 并期望您的客户端正常工作。
不过,还有另一种方法可以解决这个问题。您可以创建一个代理 Web 服务,该服务使用原始 Web 服务,然后将响应转换为新 WSDL 的结构。然后,客户端将调用您的 Web 服务,该服务将调用原始服务将响应转换回您的 WSDL 指定的内容。