1

我们正在开发一种新的 Web 服务,并正在研究在肥皂响应中返回错误的“最佳实践”。

我们正在研究创建一个错误响应对象,每个响应都将包含一个属性。然而,这似乎有点重,想知道是否可以使用 SOAP 标头来携带这些信息?您通常如何使用 SOAP 处理自定义错误?

4

4 回答 4

2

Soap 已经使用自定义标头来获取错误信息,您需要做的就是在服务器端抛出异常,并在客户端作为SoapException引发异常。

如果您想更好地控制异常消息/信息,可以在服务器端抛出 SoapExceptions。

编辑:有关请求的额外信息,可以使用自定义肥皂标题。这是CodeProject 上的示例文章,它使用自定义soap 标头进行身份验证,但自定义soap 标头可用于其他目的,例如发送不一定是错误条件的额外信息(可以是业务逻辑信息)

于 2008-10-28T10:57:03.120 回答
1

SOAPFault 用于保存错误和状态信息,服务器在 HTTP 标头中返回 500 以将其声明为错误。

请参阅 W3.org 的规范

http://www.w3.org/TR/2000/NOTE-SOAP-20000508/#_Toc478383507

您可以设计自己的信息令牌,方法是把它放在soap 标题中,甚至放在返回结果的一个元素中,只要您为第三方清楚地记录它。但是,这不是引发错误的标准方法。

于 2008-10-28T10:57:55.143 回答
0

我过去曾使用类似的技术进行复杂的操作。特别是当您需要(多个?)错误描述以及错误代码时。

于 2008-10-28T10:59:06.623 回答
0

Soap 标头用于带外信息,不应用于错误消息。此外,soap 标头不应在soap 响应中使用,因为:

  • 如果 mustUnderstand 缺失或为 0,客户端可以安全地忽略它们。
  • 如果 mustUnderstand 为 1,则客户端无法表示它不理解它(因为它是响应)。

是的,我知道一些 WS-* 标准在响应中描述了肥皂标题......

所以,

对严重到没有响应对象的错误使用肥皂故障。将状态标记添加到警告和信息消息的响应中。

于 2008-12-08T16:27:21.333 回答