java - 我从 SOAP 服务返回什么以及如何返回?

标签 java rest soap exception

我正在重构一些 SOAP 和 REST 服务。 SOAP 服务仅使用所请求的实体进行响应。例如,GET 返回所请求实体的 XML 表示形式。对于错误,它们会抛出标准异常。 REST 服务具有相同的行为。

我正在修改 REST 服务以引发 WebApplicationException 并返回正确的 http 代码(例如,成功发布时返回 http 201,而不是始终返回 http 200)。我不熟悉 SOAP,所以我想知道需要更改哪些内容(如果有的话)。

SOAP 的最佳实践是什么:

1) 对于成功和错误情况,返回 http 代码(例如,为 POST/创建请求返回 http 201)?如果是这样,怎么办?

2)抛出异常?您是否抛出所有错误,包括服务调用者发送的无效数据?它应该是 SOAP 异常还是 WebApplicationException?

我期待您的反馈。

最佳答案

SOAP 的功能独立于传输层。尽管您没有使用它,但 SOAP 能够通过不同的协议(protocol)(例如 SMTP)发送。因此,最佳实践表明

1) 您根本不应该在返回消息中返回 HTTP 代码。事实上,你可能做不到。成功/错误消息通常在自定义 SOAP header 或响应正文中定义(响应正文方法更简单)。

2) Web 服务抛出的每个异常都应该是 SOAP 异常。这样,无论客户端是什么,都可以解释 SOAP 异常并采取适当的行动。

关于java - 我从 SOAP 服务返回什么以及如何返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5342453/

相关文章:

java - 将 javax json 从 1.0.2 更新到 1.1

java - 选择默认值 SQL Management Studio

javascript - 通过Restangle中Spring POST响应的url位置 header 获取一个实体

php - NuSoap - 如何在 nusoap_client PHP 中使用本地现有的 WSDL 文件

java - 带有 IN 子句中参数列表的 PreparedStatement

java - 在 Spring Boot 启动器安全性中使用自定义登录页面成功登录,但无法进入下一页

java - 如何设计 Spring MVC REST 服务?

rest - 对于不同的 http 方法,对于无效 URL 的请求返回哪种状态?

soap - 在 SoapUI 中使用 groovy 脚本记录测试步骤响应

javascript - 从 Node.js 调用 SOAP 服务