我的异常映射器如下所示
@Provider
public class DAExceptionMapper implements ExceptionMapper<DAException> {
@Override
public @ResponseBody Response toResponse(DAException exception) {
}
}
public class DAException extends Exception {
}
我在Jetty 8.1.14上使用Spring 3.2.5和Jersey 2.15。
我找不到为什么我的异常映射器没有注册Spring。当我在我的应用程序中抛出自定义DAException时,我得到500。我在https://java.net/jira/browse/JERSEY-2063中尝试了所有解决方案。他们都没有工作。
我目前在spring context xml中注册的异常没有任何bean。我的应用程序没有通过程序设置资源。
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is DAException [responseStatus=Unauthorized, errorMessage=ErrorMessage [errorMessage=User is not allowed to access this resource.], errorDescription=User is not allowed to access this resource.]
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:948)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:827)
答案 0 :(得分:0)
您是否实施了toResponse方法?
@Provider
public class DAExceptionMapper implements
ExceptionMapper<DAException> {
@Override
public Response toResponse(DAException ex) {
return Response.status(404).entity(ex.getMessage()).type("text/plain")
.build();
}
}
还有这个,但听起来这与球衣版本有关&gt; 2.5 toResponse in jersey ExceptionMapper does not get invoked