[英]server.servletPath=/* not working in spring-boot.version 2.1.7.RELEASE
我一直在spring-boot.version 1.5.6.RELEASE
的application.properties
文件中使用以下屬性,沒有任何問題。
server.servletPath=/*
這是一種在庫類中啟用方法的變通方法,該方法使用javax.servlet.http.HttpServletRequest
的函數getPathInfo()
來獲取有效值而不是null
。
我不得不采用這種解決方法,因為不再支持該庫 jar。
當我將應用程序升級到spring-boot.version 2.1.7.RELEASE
時,此解決方法開始失敗
server.servletPath
從 Spring Boot 2 開始更改為spring.mvc.servletPath
。
我嘗試設置以下屬性但它不起作用
spring.mvc.servletPath=/*
我還在我的配置類中嘗試了以下功能,但它不起作用。
@Bean
public DispatcherServletRegistrationBean dispatcherServletRegistration(
DispatcherServlet dispatcherServlet,
ObjectProvider<MultipartConfigElement> multipartConfig) {
DispatcherServletRegistrationBean registration = new DispatcherServletRegistrationBean(
dispatcherServlet, "/*");
registration.setName("dispatcherServlet");
registration.setLoadOnStartup(-1);
multipartConfig.ifAvailable(registration::setMultipartConfig);
return registration;
}
您能否使用spring-boot.version 2.1.7.RELEASE
為該屬性提供一個spring-boot.version 2.1.7.RELEASE
解決方案?
謝謝,迪努
較新的 spring 版本的正確設置是:
spring.mvc.servlet.path=/some/path
這改變了 DispatcherServlet 的映射,所以 spring 服務的所有資源都映射到這個路徑。
如果你設置:
server.servlet.contextPath=/some/path
整個網絡上下文都發生了變化。
主要區別在於設置調度程序 servlet 路徑允許您在其他路徑上注冊額外的 servlet,而設置上下文路徑時,spring boot 的 tomcat 只能提供該上下文路徑下的內容。
在最新的 Spring Boot 版本上使用以下配置屬性:
server.servlet.contextPath=/*
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.