使用RESTeasy域下的嵌入式Jetty忽略自定义错误页面

时间:2017-03-23 22:31:08

标签: jetty http-status-code-404 resteasy

这个问题有些牵连。简短版本是我的自定义error.html有时会被遵守,但在使用Embedded Jetty / RESTeasy时则不然。可以在https://github.com/pepperdog/sensus(初始提交)找到一个小例子。

我已使用自定义错误页面配置了web.xml:

<error-page>
    <error-code>404</error-code>
    <location>/util/error.html</location>
</error-page>

如果您点击随机网址,则此功能正常:http://localhost:8080/XYZ

如果您点击了web.xml中配置的RESTeasy URL:http://localhost:8080/ListMessages/books,这可以正常使用

如果您在RESTeasy域中找到了不存在的网址:http://localhost:8080/ListMessages/books_nonexistent 你只得到标准的空白页面404,而不是自定义404.这不是我过去在tomcat容器中使用RESTeasy的经验,所以我的假设是它与Jetty相关。这只是它的方式,还是我错过了什么?

感谢您的回答。

1 个答案:

答案 0 :(得分:1)

这是一个非常古老的问题,但我在试图为自己解决问题时遇到过。

如果有人还在寻找,解决方案是将RESTeasy实现为Filter而不是servlet。根据文档:“将Resteasy作为Servlet运行的缺点是,您不能将.html和.jpeg文件等静态资源放在与JAX-RS服务相同的路径中.Resteasy允许您作为过滤器运行。如果是在请求的URL下找不到JAX-RS资源,Resteasy将委托回基本servlet容器来解析URL。“