未找到响应类MyException的消息正文作者
问题描述:
我正在使用Apache-cxf来实现Restful Web服务。如果发生异常,我使用ExceptionMapper构建响应对象。如果发生任何异常,我会收到错误。 “未找到响应类MyException的消息正文作者
”找不到响应类MyException的消息正文作者。“
我可以找到一些建议实现MessageBodyWriter的自定义Writer的帖子,但我不是很清楚为什么我需要自定义编写器,如果为构建响应传递的实体对象(ErrorInfo)是jaxb对象。这可能是一个非常愚蠢的问题,但只是想明白。
@Provider
public class MyExceptionMapper implements
ExceptionMapper<MyException> {
@Override
public Response toResponse(MyException ex) {
Response.Status statusCode = exceptionMap.get(ex.getClass());
ErrorInfo errorInfo=new ErrorInfo();
errorInfo.setErrorCode(ex.getErrorCode());
errorInfo.setErrorMessage(ex.getMessage());
return Response.status(statusCode).entity(ex).build();
}
}
@XmlRootElement(name = "errorInfo")
@XmlType(propOrder = { "errorCode", "errorMessage"})
public class ErrorInfo {
private String errorCode;
private String errorMessage;
public String getErrorCode() {
return errorCode;
}
public void setErrorCode(String errorCode) {
this.errorCode = errorCode;
}
public String getErrorMessage() {
return errorMessage;
}
public void setErrorMessage(String errorMessage) {
this.errorMessage = errorMessage;
}
}
答
有同样的问题,我设置的内容类型明确地解决了这个问题:
return Response.status(statusCode).entity(ex).type(MediaType.APPLICATION_JSON).build();