【问题标题】:Custom error page being ignored with Embedded Jetty under RESTeasy domainRESTeasy 域下的 Embedded Jetty 忽略了自定义错误页面
【发布时间】:2017-08-16 17:22:26
【问题描述】:

这个问题有点牵扯。简短的版本是有时会遵守我的自定义 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>

如果您点击一个随机 URL,这将有效:http://localhost:8080/XYZ

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

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

感谢您的任何回答。

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2011-04-17
      • 2018-12-07
      • 2011-06-26
      • 1970-01-01
      • 2011-07-13
      • 2010-10-04
      • 2017-04-04
      • 2014-03-08
      • 1970-01-01
      相关资源
      最近更新 更多