- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我尝试将我的应用程序从 spring boot 1.5 迁移到 2.0问题是我找不到 EmbeddedServletContainerCustomizer。有什么想法可以通过吗?
@Bean
public EmbeddedServletContainerCustomizer customizer() {
return container -> container.addErrorPages(new ErrorPage(HttpStatus.UNAUTHORIZED, "/unauthenticated"));
}
更新:我在 org.springframework.boot.autoconfigure.web.servlet 包中找到它作为 ServletWebServerFactoryCustomizer。
@Bean
public ServletWebServerFactoryCustomizer customizer() {
return container -> container.addErrorPages(new ErrorPage(HttpStatus.UNAUTHORIZED, "/unauthenticated"));
}
但是有一个错误:无法解析方法
'addErrorPages(org.springframework.boot.web.server.ErrorPage)'
我还必须将新错误页面的导入从 org.springframework.boot.web.servlet
更改为 org.springframework.boot.web.server
最佳答案
我认为您需要 ConfigurableServletWebServerFactory
,而不是 ServletWebServerFactoryCustomizer
。
您可以在下面找到代码片段:
import org.springframework.boot.web.embedded.undertow.UndertowServletWebServerFactory;
import org.springframework.boot.web.server.ErrorPage;
import org.springframework.boot.web.servlet.server.ConfigurableServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.HttpStatus;
@Configuration
public class ServerConfig {
@Bean
public ConfigurableServletWebServerFactory webServerFactory() {
UndertowServletWebServerFactory factory = new UndertowServletWebServerFactory();
factory.addErrorPages(new ErrorPage(HttpStatus.UNAUTHORIZED, "/unauthenticated"));
return factory;
}
}
以上代码适用于 Undertow。对于 tomcat,您需要将 UndertowServletWebServerFactory
替换为 TomcatServletWebServerFactory
。
您需要将以下依赖项添加到您的项目中(如果是 Maven):
<dependency>
<groupId>io.undertow</groupId>
<artifactId>undertow-servlet</artifactId>
<version>2.0.26.Final</version>
</dependency>
关于java - Spring Boot 2.0 中的 EmbeddedServletContainerCustomizer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49406779/
我正在使用 Spring Boot 1.5.9。将应用程序打包为可执行 war(布局为 WAR)并运行它时,它仅适用于 mvn spring-boot:run。只要我通过 java -jar 启动应用
我想在应用程序运行时更改绑定(bind)端口,但遇到错误消息“EmbeddedServletContainerCustomizer 无法解析为类型”。我的 Spring boot 版本是 2.0.0.
我尝试将我的应用程序从 spring boot 1.5 迁移到 2.0问题是我找不到 EmbeddedServletContainerCustomizer。有什么想法可以通过吗? @Bean publ
我最近升级到 Spring Boot 2,我们的应用程序通过 Bamboo 部署到 PCF 上,构建运行正常,但是在部署阶段我收到以下错误: java.lang.ClassNotFoundExcept
我们正在使用 Spring Boot 1.5.9 中的下一个接口(interface),没有任何问题:ConfigurableEmbeddedServletContainer 和 EmbeddedSe
我是一名优秀的程序员,十分优秀!