簡體   English   中英

server.servletPath=/* 在 spring-boot.version 2.1.7.RELEASE 中不起作用

[英]server.servletPath=/* not working in spring-boot.version 2.1.7.RELEASE

我一直在spring-boot.version 1.5.6.RELEASEapplication.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM