相关疑难解决方法(0)

JAX-RS - 如何将JSON和HTTP状态代码一起返回?

我正在编写REST Web应用程序(NetBeans 6.9,JAX-RS,TopLink Essentials)并尝试返回JSON HTTP状态代码.我已准备好代码并且在从客户端调用HTTP GET方法时返回JSON.实质上:

@Path("get/id")
@GET
@Produces("application/json")
public M_?? getMachineToUpdate(@PathParam("id") String id) {

    // some code to return JSON ...

    return myJson;
}
Run Code Online (Sandbox Code Playgroud)

但是,我想用JSON数据一起返回的HTTP状态代码(500,200,204,等).

我试着用HttpServletResponse:

response.sendError("error message", 500);
Run Code Online (Sandbox Code Playgroud)

但这使得浏览器认为它是"真正的"500,因此输出网页是一个常规的HTTP 500错误页面.

我想返回一个HTTP状态代码,以便我的客户端JavaScript可以根据它处理一些逻辑(例如在HTML页面上显示错误代码和消息).这是可能的还是HTTP状态代码不能用于此类事情?

java rest jax-rs http-status-codes

237
推荐指数
8
解决办法
45万
查看次数

Bean Validation 400错误返回默认错误页面(html)而不是Response实体(json)

我有一个JUnit测试套件:GrizzlyHttpServerFactory + Jersey + Bean验证(jersey-container-grizzly2-servlet/jersey-bean-validation ver 2.12,grizzly-http-server ver 2.3.16,hibernate-validator ver 5.0.0.Final)

ValidationException生成的400个错误返回Grizzly的默认错误页面(html)而不是Bean Validation的Response实体(json).我尝试过ClientResponseFilter,它的entityStream也包含html错误页面.

当我在Tomcat下运行系统时,ValidationExceptions返回一个带有json格式实体的Response.

关于如何配置Grizzly/Jersey/Validator以不返回错误页面(html)并将ValidationExceptions放入Response的entityStream中的任何想法,就像Tomcat一样?

提前致谢,

迈克诺曼

grizzly jersey-2.0

4
推荐指数
2
解决办法
1919
查看次数

标签 统计

grizzly ×1

http-status-codes ×1

java ×1

jax-rs ×1

jersey-2.0 ×1

rest ×1