【发布时间】:2013-10-23 15:19:26
【问题描述】:
Jersey 支持将 ExceptionMappers 作为一般处理坏事的一种方式,但这仅在调用到达我的代码时才有效。如果有人喜欢这个 URL,比如 http://host/fubar 而不是 http://host/foobar,那么它会返回一个通用的 404。
我需要获取那些经过优化的 URL 并重定向到我选择的页面,但几个小时后我似乎无法找到正确的配置来实现这一点。我一直在浏览调试器,但我没有找到可以挂接某些配置以将此类 404 重定向到我选择的页面的位置。
编辑:请注意,任何 WebApplicationException 的自定义异常映射器都会被 Jersey (1.17.1) 忽略。相反,它被路由到不同的处理方法。这是 Jersey 的 ContainerResponse.java 中的代码 sn-p:
if (cause instanceof WebApplicationException) {
mapWebApplicationException((WebApplicationException)cause);
} else if (!mapException(cause)) { ... }
那 mapWebApplicationException((WebApplicationException)cause) 是 Jersey 自己处理的,所以它永远不会遇到调用自定义映射器的 elseif 中的 mapException(cause) 方法。
【问题讨论】: