如何在 Spring Boot 应用程序中为码头服务器自定义带有自定义正文内容的 ErrorHandler 类

Posted

技术标签:

【中文标题】如何在 Spring Boot 应用程序中为码头服务器自定义带有自定义正文内容的 ErrorHandler 类【英文标题】:how to customize the ErrorHandler class with customized body contents for jetty server in spring boot application 【发布时间】:2018-07-18 20:54:04 【问题描述】:

我有一个在码头服务器上运行的 Spring Boot 应用程序。要求是使用我们自己的消息自定义 404 和其他错误。经过一段时间的搜索,我们可以通过扩展jetty包的ErrorHandler类并覆盖方法getErrorPage(HttpServletRequest request)来实现自定义类。

疑问:无法弄清楚如何在 Spring Boot 应用程序中配置此自定义类以覆盖默认的 ErrorHandler 类。有没有办法注入这个自定义类?

任何帮助/建议都会非常有帮助。

【问题讨论】:

如果您使用的是 Servlet,只需在您的 web 应用程序中创建一个错误页面处理程序。 - 见***.com/questions/7066192/… ***.com/questions/37398385/…的可能重复 如果你只是想修改 Spring Boot 在 embedded Jetty 上返回的默认 JSON 响应的内容,这将是最简单的方法:***.com/questions/29106637/…跨度> 【参考方案1】:

我可以通过扩展

创建自定义类来实现这种自定义错误处理
org.eclipse.jetty.server.handler.ErrorHandler

类(如我的问题中所述)并覆盖 doError 方法。

这个自定义类需要在启动jetty server时配置为错误处理类,如下所示。

org.eclipse.jetty.server.Server server = new Server();
server.setErrorHandler(new CustomErrorHandler());

因此,当任何错误的 URL 发送到您的应用程序时,您的自定义错误处理程序类方法将被调用,您可以在其中编写自己的自定义响应正文/内容。

【讨论】:

以上是关于如何在 Spring Boot 应用程序中为码头服务器自定义带有自定义正文内容的 ErrorHandler 类的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Spring Boot / Spring Data 中为 Amazon RDS Mysql 启用 SSL?

我应该如何在 Gradle 中为 Spring Boot 应用程序设置主类?

如何在 Spring Boot 中为 Spring LDAP 身份验证设置覆盖 BindAuthenticator handleBindException

如何从 facebook/google/... oauth2 身份验证在 Spring (Boot) 中为单页应用程序派生自定义登录令牌?

如何在 Spring Boot 应用程序中为带有 @Configuration 注释的类编写单元测试用例

如何在 Spring Boot 中为 Camel 配置 Jackson ObjectMapper