Java 如何在application.yaml(spring boot)中禁用白标签错误页
我有一个遗留的Java monolith后端,为RESTAPI(SpringBootV1.5.9,gradle)提供服务,我必须不时维护它。请求禁用此错误页: “此应用程序没有/error的显式映射,因此您将其视为回退 美国东部时间2021年3月10日星期三13:41:12 出现意外错误(类型=内部服务器错误,状态=500)。” 我试图删除这条消息,但大多数建议都解释了如何在“application.properties”文件中删除它,而我的项目根本没有这个文件。相反,我有application.yaml文件,我在其中添加了以下配置:Java 如何在application.yaml(spring boot)中禁用白标签错误页,java,spring-boot,Java,Spring Boot,我有一个遗留的Java monolith后端,为RESTAPI(SpringBootV1.5.9,gradle)提供服务,我必须不时维护它。请求禁用此错误页: “此应用程序没有/error的显式映射,因此您将其视为回退 美国东部时间2021年3月10日星期三13:41:12 出现意外错误(类型=内部服务器错误,状态=500)。” 我试图删除这条消息,但大多数建议都解释了如何在“application.properties”文件中删除它,而我的项目根本没有这个文件。相反,我有application
spring:
autoconfigure:
exclude:
- org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration
但我仍然看到相同的错误页面
其他建议告诉我在“main”类上做些什么,不幸的是,我的项目也没有
我还试图实现ErrorController
以获得自己的错误页面,但我的控制器根本没有注册。这个遗留应用程序没有遵循标准的项目结构建议,因此任何指向spring boot文档中示例结构的链接都不会对我有帮助
如果要禁用默认的“白标签错误页”,请提供禁用白标签错误页或实施
ErrorController
的建议。如果要禁用默认的“白标签错误页”,请添加:
server:
//..optionally, some other properties
error:
whitelabel:
enabled: false
//..optionally, some other properties
在应用程序中.yml
但是,如果要覆盖该页面,而不是禁用该页面并显示application server的默认错误页面,则有几种方法:
error.html
页面,将其放在templates
文件夹下(或从中获取视图的任何位置),Spring Boot的默认BasicErrorController
将自动将其作为一般错误页面获取,即-对于所有HTTP错误代码
使用您要处理的HTTP状态代码命名错误文件,并将其保存在
resources\templates\error\
中。这样,您可能有多个错误页面,它们将用于相应的HTTP错误。例如,当发生HTTP 404时,将返回404.html
我希望这有帮助。谢谢。禁用是可行的,但我没有模板文件夹,因为在这个只作为RESTAPI服务器工作的monolith后端中根本没有视图。我在一个参考资料文件夹下创建了一个,但它不起作用。我放弃了。RESTAPI不返回视图。你必须决定你想做什么。。REST API返回错误响应,其中包含一些信息,如错误代码、原因等。如果根本没有视图,那么您可能需要动态构造视图,并将该视图和
内容类型
头都写入HttpServletResponse
对象中。。您可以将此视图构造提取到其他方法中。在RESTAPI中使用视图不是一个好主意。