我已经实现了一个Restful Web服务,它通过anotating @Produces("application/json")
使用错误代码处理应用程序错误。所以我形成一个带有错误代码和错误消息的对象。因此,当存在应用程序异常时,它将以XML格式生成。如何以JSON格式生成那些?
答案 0 :(得分:0)
是的你可以。捕获您的异常并使用您的自定义异常类处理它,并通过将响应内容类型设置为application / json来抛出异常类
try{
InitialContext ctx = new InitialContext();
TestIntf intf = (TestIntf)ctx.lookup("java:comp/env/ejb/TestImpl");
}catch(NamingException namingException) {
CustomException lookupException = new CustomException("SYSJNDIE001", namingException.getMessage());
throw lookupException;
}
你的Exception类看起来像这样
public class CustomException extends Exception {
private static final long serialVersionUID = -5358934896070563181L;
public CustomException(String errorCode, String message) {
super(errorCode, message);
}
}
为Exception创建一个Provider类Mapper
@Provider
public class FaultResponseMapper implements ExceptionMapper<CustomException> {
@Context
private HttpHeaders headers;
@Override
public Response toResponse(CustomException customException) {
return Response.status(Response.Status.INTERNAL_SERVER_ERROR)
.entity(customException)
.type(MediaType.APPLICATION_JSON).build();
}
}