【问题标题】:Should I be prepared for fault when WSDL doesn't define it for operation?当 WSDL 没有为操作定义它时,我是否应该为故障做好准备?
【发布时间】:2012-06-26 10:15:08
【问题描述】:
我想知道当 WSDL 没有为操作定义错误时,我是否应该为错误做好准备。更具体地说,有一个仅使用输入定义的操作的 WSDL(见下文)。对我来说,这意味着我不应该为任何错误消息做好准备,并且在发送请求后,我可能会走得更远而不看 HTTP 响应。我说得对吗?
<wsdl:operation name="someOperationName">
<wsdl:input message="someOperationMessage" name="someOperationRequest"></wsdl:input>
</wsdl:operation>
最好的问候,
塞尔登
【问题讨论】:
标签:
web-services
input
wsdl
fault
【解决方案1】:
您应该始终为从 Web 服务返回的错误做好准备。是否在 WSDL 文档中声明故障取决于服务提供者和调用的性质。理想情况下,如果可以合理预期故障情况并且可以由客户端解决(例如验证异常),则应声明生成的故障,并且客户端应用程序可以针对该故障定制响应。
对于客户端不太可能解决的情况(例如,后端数据库故障)在 WSDL 中包含故障声明的价值在文档中(很高兴知道可能会返回哪些类型的故障),而不是功能。
在任何一种情况下,HTTP 响应都应添加到任何故障消息提供的信息中,并且在某些情况下,可能仍会通过 HTTP 响应代码指示故障而根本不返回故障(例如服务器故障) .