当前位置: 首页 > 知识库问答 >
问题:

Spring Boot索引jsp在本地主机上工作,但在linux服务器中找不到

爱茂勋
2023-03-14

我创建了Spring启动应用程序。它在我的本地主机上成功运行。但当我在linux centos服务器中部署并运行jar文件时,找不到索引页(我得到:出现了一个意外错误(type=notfound,status=404)/WEB-INF/jsp/index。(jsp)

这是我的代码结构和应用程序。特性:

代码结构

这是我的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>

共有1个答案

申屠宏胜
2023-03-14

由于tomcat中的硬编码模式,Springboot和jsp不能正常使用jar包装。因此,如果您在tomcat中使用jsp作为视图渲染和部署,最好使用war打包和springstart。

问题是,当您使用jar部署springboot应用程序时,jsp文件将不会出现在tomcat中,并且在尝试为html" target="_blank">请求提供服务时,您将得到一个找不到的404页面。这是因为jar打包,jsp文件没有从WEB-INF文件夹中复制。如果在使用jar作为打包时将jsp文件保存在META-INF/resources文件夹下,它应该可以工作。但springboot文档本身清楚地表明,最好将war与jsp一起用作打包。

对于Jetty和Tomcat,如果您使用war包装,它应该可以工作。当使用java-jar启动时,可执行war将起作用,并且还可以部署到任何标准容器中。使用可执行jar时不支持JSP。

Spring医生

相关帖子:为什么SpringBoot不支持jsp,而如果我们添加适当的jar引用,它可以呈现页面

 类似资料:
  • 这是我的第一个问题,也是第一篇英文帖子,请耐心等待。 我正在研究ASP。NET MVC Web Api RESTful应用程序。对于用户身份验证,我想使用加密令牌。我在localhost上工作的想法是:用户请求令牌地址/令牌,在头中包括auth:昵称:passwd,服务器返回加密的令牌,用户将在下一个请求中使用它。所以,用户发送带有头身份验证令牌的请求:encryptedToken,服务器将解密该

  • LocalHost显示空白页。我将Apache的端口更改为80,当我按下open page时,它会转到localhost/mamp。当我删除/mamp时,我得到的只是一个空白页。我尝试过多种方法,比如关闭mamp,启动它,重新启动我的机器。我已经检查了文件夹设置,一切正常。 我通过创建一个新的文件页索引来测试它。html,它打开的很好。 我不知道它为什么不打开我的索引。php文件。下面是我的php

  • 我试着简单地在我的路线和渲染产品中获取照片的位置。ejs文件: 它在本地主机上工作,现在我导入我的路由。在real server中的js文件,当我尝试打开产品时,它抛出504错误。 试图按照这个指示,但没有帮助。 获得504GATEWAY_TIMEOUTNodeJs grep-i“504”/var/log/nginx/access。日志 82.135.208.60--[2019年9月16日:07:

  • 我有两个应用程序——基于浏览器的客户端和基于NodeJS的服务器,它们都使用WebSockets进行通信(我使用的是ColyseusJS库)。问题是,当我在本地主机上测试它们时,一切都正常,但当我将应用程序部署到我的Ubuntu VPS服务器时,它停止工作。 我在尝试连接时在浏览器中收到的消息是: 所以它到达服务器(因为当服务器被禁用时,消息是“连接建立中的错误:净::ERR_CONNECTION

  • 我试过这里发布的其他解决方案,但没有任何效果。。 我有下面的代码。htaccess文件。 我收到一封电子邮件,通过点击url,我可以访问注册表。php 我开始登记表格。比如: 有人知道为什么这在本地主机上有效,而在远程服务器上无效吗?

  • 我有这个简单的代码: 这在本地主机上效果很好,并导致: 但是当我在Heroku上使用它时,我得到了一个应用程序错误。日志状态: 2018-09-12t 13:50:25.541953 00:00 heroku[web . 1]:状态从启动更改为崩溃 2018-09-12T13:50:32.696713 00:00 heroku[router]: at=error code=H10 desc=“Ap