【问题标题】:ATG REST API - How to send different HTTP status code rather than 500ATG REST API - 如何发送不同的 HTTP 状态码而不是 500
【发布时间】:2018-05-15 17:39:19
【问题描述】:
我正在公开一个 REST 服务,在该服务中我试图根据错误类型返回不同的 HTTP 状态代码。
不幸的是,我设法发送的唯一错误状态是 500。
我尝试了以下方法,但似乎不起作用。
throw new RestException(e.getMessage(), ServletUtil.getCurrentResponse().getResponse(), 404);
有什么想法吗?
提前谢谢你。
【问题讨论】:
标签:
rest
atg
oracle-commerce
【解决方案1】:
对于 ATG 11.3,您有不同类型的 RESTful Web 服务:
JAX-RS
如果您使用的是 JAX-RS Web 服务,请按照说明进行操作 here
此外,API Documentation 声明如下:
请注意,所有 RestExceptions 都要求提供 servlet 响应状态代码,以便适当地设置响应对象的状态。错误代码必须是来自 HttpServletResponse 对象的 http 状态代码
另外请注意,有两个 RestException 类,一个是 atg.rest.RestException,另一个是 atg.service.jaxrs.RestException
所以请确保您已导入正确的。
REST MVC
如果您使用的是 REST MVC(我猜您是),请按照说明进行操作 here。