为什么我们应该在 WSDL 中指定 SOAP 位置?
soap:address/
或 soap:address location=uri /
是 Spring 框架 Web 服务?
Is soap:address/
or soap:address location=uri /
best practice for Spring Framework web services?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
WSDL 文件中的soap:address 位置是必需的,因为WSDL 文件是提供服务的合同。一份好的合同应该明确说明服务提供什么以及在哪里可以找到和访问该服务。服务提供者应通过 WSDL 合同承诺在指定位置提供服务。这就是为什么根据w3网站需要该位置。
如果您使用 Spring 创建 Web 服务,您可以访问指定属性文件中的位置,以便以后轻松更改它。如果您使用 Spring 创建一个使用 Web 服务的客户端,我发现 wsdl 中的soap:address 位置不起作用。 Spring Web 服务客户端会忽略它并使用 org.springframework.ws.client.core.WebServiceTemplate 的 defaultUri 属性中的值。
The soap:address location is necessary in the WSDL file because the WSDL file is a contract for providing a service. A good contract should be clear on what the service offers as well as where the service can be found and accessed. The provider of a service should be committed through the WSDL contract to offer the service in the specified location. That's why the location is required according to the w3 website.
If you are using Spring to create a web service you access specify the location in a property file to easily change it later. If you are using Spring to create a client that uses a web service I found that the soap:address location in the wsdl has no effect. Spring web service client ignore it and uses the value in the defaultUri property of org.springframework.ws.client.core.WebServiceTemplate.
我猜原因是WSDL没有绑定到SOAP,所以当你使用它时,你必须明确。
I guess the reason is that WSDL is not bound to SOAP, so when you use it, you have to be explicit.