我试图在我的一个REST方法中使用json内容返回UNAUTHORIZED响应。我在使用Jersey 2.5.1和Spring。
我在我的方法上使用以下注释:
@Path("login")
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Response myMethod(@Valid CmdObject cmd) {
...
return Response.status(Response.Status.UNAUTHORIZED).entity(AUTHENTICATION_ERROR_MSG).build();
}
如果AUTHENTICATION_ERROR_MSG只是一个字符串,例如“身份验证问题”,一切都很好并且返回一个响应,但它只是字符串内容。
如果我用某个Object替换AUTHENTICATION_ERROR_MSG,则返回500 Http错误。
有什么建议可能出错吗?
答案 0 :(得分:0)
当服务器返回错误500时,它返回什么错误消息?
您是否已经有其他正确返回JSON的方法?
请注意,您需要添加一个库,使Jersey能够将对象转换为JSON。否则,它无法将对象转换为JSON。
根据Jersey's user guide,执行此操作的首选库是MOXy。如果您想使用它,请将以下内容添加到项目的pom.xml
。
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-moxy</artifactId>
</dependency>