springboot web打war包失敗

有一個非常簡單的idea springboot web項目(在pom.xml裏設置 <packaging>war</packaging>),就一個/hello controller,既然是最簡單的java web項目,咱就不載圖如何創建項目了,今天要說的是用idea內嵌的tomcat(其實是9.0版)實驗成功。但將項目發佈到雲服務器上或本機的tomcat上都不成功,總是出現:
HTTP狀態 404 - 未找到
類型 狀態報告

消息 請求的資源[/hello]不可用

描述 源服務器未能找到目標資源的表示或者是不願公開一個已經存在的資源表示。
我將本機的tomcat7/8/9三個版本都實驗了,現象一樣。

我查看spring-boot-starter-web,裏面有嵌入tomcat,根據https://www.pianshen.com/article/9379136015/中所說,我修改pom.xml如下:
<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>
因爲前面實驗不成功我猜想會不會是因爲有內嵌tomcat的原因,所以我通過用provided將spring-boot-starter-web引用的內嵌的tomcat去掉,那麼用本機tomcat實驗時將會成功,可結果還是失敗,一樣的現象。結果在https://blog.csdn.net/h_xiao_x/article/details/107012738 說到要想打war包在tomcat中使用需要用到SpringBootServletInitializer,我立刻修改代碼如下:
@SpringBootApplication
public class YwwwApplication extends SpringBootServletInitializer {

    public static void main(String[] args) {
        SpringApplication.run(YwwwApplication.class, args);
    }
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(YwwwApplication.class);
    }
}

啓動本機tomcat終於出現:
[H:\yitan\apache-tomcat-9.0.48\we
bapps\yitanwww-0.0.1-SNAPSHOT.war]

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::                (v2.4.0)

在瀏覽器中實驗測試OK。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章