Don*_*mmy 1 java json jax-rs jersey jakarta-ee
我想在出现错误时中止请求并返回 JSON。但下面的代码只是返回一个字符串说"Unexpected 'U'"(这不是我的信息)
我如何让它通过 JSON 响应中止?
requestContext.abortWith(
Response.status( Response.Status.UNAUTHORIZED ).entity(
e.getMessage()
).type(
MediaType.APPLICATION_JSON
).build()
);
Run Code Online (Sandbox Code Playgroud)
看起来e.getMessage()不会给你一个有效的 JSON。
一旦有效的 JSON 可以是带引号的字符串,您就可以简单地在异常消息中添加引号:
String message = "\"" + e.getMessage() + "\"";
requestContext.abortWith(Response.status(Response.Status.UNAUTHORIZED).entity(message)
.type(MediaType.APPLICATION_JSON).build());
Run Code Online (Sandbox Code Playgroud)
或者,您可以将消息包装到 bean 中:
public class ApiError {
private String message;
// Getters and setters
}
Run Code Online (Sandbox Code Playgroud)
然后将其作为响应实体返回:
ApiError error = new ApiError();
error.setMessage(e.getMessage());
requestContext.abortWith(Response.status(Response.Status.UNAUTHORIZED).entity(error)
.type(MediaType.APPLICATION_JSON).build());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1314 次 |
| 最近记录: |