簡體   English   中英

部署在Tomcat上的WAR文件未讀取application.properties文件

[英]WAR file deployed on Tomcat not reading application.properties File

我已經使用Java中的Spring Boot Framework創建了一個演示REST API。 我想將此API作為WAR文件部署在Tomcat 8上。 該API已經配置為使用Spring Initializr編譯為WAR文件。 但是,在部署API時,它不會從項目中讀取application.properties文件。

  • 我已經嘗試使用@PropertySource@PropertySources批注。
  • 我還嘗試過在pom.xml文件的<build>標記中包含<resources>標記。
  • 我也嘗試將.properties("classpath:application.properties")ServletInitializer

什么都沒做


更新資料

在本文中,我以context-path為例。 在我的實際應用程序中,我有一些屬性存儲在application.properties中,而應用程序未讀取它們。


這是我的代碼文件:

  • application.properties
server.servlet.context-path=/api
  • 應用程序
@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}
  • ServletInitializer.java
public class ServletInitializer extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(Application.class);
    }
}
  • User.java
@RestController
@RequestMapping("/user")
public class User {

    @GetMapping("")
    public String getUser() {
        return "User is here...";
    }
}

命中localhost:8080/demo/api/user URL應該會提供我們想要的輸出,但是會給出404結果。 而點擊localhost:8080/demo/user則提供所需的輸出。 這意味着該應用程序未讀取application.properties文件,因為該文件中api的默認路由設置為/api

僅嵌入式tomcat支持server.servlet.context-path 如果要部署到外部tomcat,請遵循此處的准則設置上下文路徑: https : //tomcat.apache.org/tomcat-8.0-doc/config/context.html

現在,驗證application.properties是否捆綁在WAR文件中。 為此,請提取或打開WAR文件。 如果未包括在內,請驗證您的構建文件是否資源插件正在復制資源文件。

如果WAR中包含application.properties ,請嘗試閱讀應用程序中的其他屬性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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