Spring Boot Index JSP可在localhost上运行,但在Linux服务器上找不到

我创建Spring Boot应用程序。它可以在我的本地主机上成功运行。 但是当我在Linux centos服务器索引页面中部署并运行jar文件时找不到 (我得到:发生意外错误(类型=未找到,状态= 404)。 /WEB-INF/jsp/index.jsp)

这是我的代码结构和application.properties:

code structure

这是我的pom.xml依赖项:

<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jdbc</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <scope>runtime</scope>
        <optional>true</optional>
    </dependency>

    <dependency>
        <groupId>com.microsoft.sqlserver</groupId>
        <artifactId>mssql-jdbc</artifactId>
        <version>6.1.0.jre8</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
    </dependency>

    <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-jasper</artifactId>
        <scope>provided</scope>
    </dependency>

    <!-- https://mvnrepository.com/artifact/javax.servlet/jstl -->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
    </dependency>

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.5</version>
        <scope>provided</scope>
    </dependency>

    <dependency>
        <groupId>javax.servlet.jsp</groupId>
        <artifactId>jsp-api</artifactId>
        <version>2.1</version>
        <scope>provided</scope>
    </dependency>




    <!-- https://mvnrepository.com/artifact/log4j/log4j -->
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
    </dependency>
A327619111 回答:Spring Boot Index JSP可在localhost上运行,但在Linux服务器上找不到

Springboot和jsp 在jar打包中不能正常工作,因为tomcat中使用了硬编码模式。因此,如果您将jsp用作视图渲染并部署在tomcat中,则最好使用 war 和springboot打包。

问题是,当您使用jar部署springboot应用程序时,tomcat中将不存在jsp文件,并且在尝试处理请求时,您将得到 404页面未找到。这是因为jar打包,因此不会从WEB-INF文件夹复制jsp文件。如果在使用jar打包时将jsp文件保留在META-INF/resources文件夹下,则应该可以。但是springboot文档本身明确指出,最好将 war 与jsp一起使用。

  

对于Jetty和Tomcat,如果使用战争包装,它应该可以工作。一个   与java -jar一起启动时,可执行文件战争将起作用,并且   可部署到任何标准容器。在以下情况下不支持JSP   使用可执行jar。

春天Doc

相关帖子:Why does Spring boot not support jsp while it can render the page if we add proper jar reference

本文链接:https://www.f2er.com/3154606.html

大家都在问