spring打包jar包时jsp页面无法访问

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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>
View Code

解决办法:

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>
View Code

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.
View Code

<packaging>war</packaging>

 

 

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

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

 

以上是关于spring打包jar包时jsp页面无法访问的主要内容,如果未能解决你的问题,请参考以下文章

springboot项目打包成jar无法访问jsp页面的解决方法

Springboot打jar包项目无法访问jsp问题解决

2023.3.4 Bug记录:Springboot打成jar包后,jsp页面无法刚问

使用 Gradle 为带有 JSP 页面的 Spring Boot 应用程序创建 Jar

关于如何将我的spring boot web应用部署到tomcat8的一个问题

Spring Boot 可执行 jar 无法访问索引页面