1. 程式人生 > 程式設計 >Spring打包jar包時jsp頁面無法訪問問題解決

Spring打包jar包時jsp頁面無法訪問問題解決

spring打包jar包時jsp頁面無法訪問

問題如下

Spring打包jar包時jsp頁面無法訪問問題解決

當前pom.xml配置

<build>
    <resources>
      <!--引入配置檔案-->
      <resource>
        <directory>src/main/resources</directory>
        <filtering>false</filtering>
      </resource>
      <!--引入靜態檔案-->
      <resource>
        <directory>src/main/webapp</directory>
        <targetPath>META-INF/resources</targetPath>
        <filtering>false</filtering>
      </resource>
    </resources>

    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        
      </plugin>
      <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-surefire-plugin</artifactId> 
        <configuration> 
          <skipTests>true</skipTests> 
        </configuration> 
      </plugin>
    </plugins>
  </build>

解決辦法:

1.高版本的外掛不支援jsp,給spring-boot-maven-plugin指定版本號“1.4.2.RELEASE”

<build>
    <resources>
      <!--引入配置檔案-->
      <resource>
        <directory>src/main/resources</directory>
        <filtering>false</filtering>
      </resource>
      <!--引入靜態檔案-->
      <resource>
        <directory>src/main/webapp</directory>
        <targetPath>META-INF/resources</targetPath>
        <filtering>false</filtering>
      </resource>
    </resources>

    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <version>1.4.2.RELEASE</version>
      </plugin>
      <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-surefire-plugin</artifactId> 
        <configuration> 
          <skipTests>true</skipTests> 
        </configuration> 
      </plugin>
    </plugins>
  </build>

2.根據spring官網說明,可打包war包,仍然可使用jar -jar xxx.war執行。

https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-jsp-limitations

JSP Limitations
When running a Spring Boot application that uses an embedded servlet container (and is packaged as an executable archive),there are some limitations in the JSP support.

With Jetty and Tomcat,it should work if you use war packaging. An executable war will work when launched with java -jar,and will also be deployable to any standard container. JSPs are not supported when using an executable jar.

Undertow does not support JSPs.

Creating a custom error.jsp page does not override the default view for error handling. Custom error pages should be used instead.

<packaging>war</packaging>

https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-documentation

spring官方不推薦使用jsp,推薦使用thymeleaf、freemaker、velocity等其他模組引擎。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。