为什么在 Pivotal Web 服务中部署 SpringBoot 应用程序时 JSP 页面没有呈现,而它与 Thymeleaf 和其他视图一起工作正常

Why is the JSP page not rendered while deploying a SpringBoot App in Pivotal Web Services while it works fine with Thymeleaf and other views

该应用程序部署在关键的 Web 服务中,当我使用 link https://webstore.cfapps.io/ 访问该应用程序时,login.jsp 页面未呈现。

同一应用程序在本地服务器上运行成功。我尝试搜索相同的问题,但 none 解决了问题。我既使用了 STS 部署,也尝试了 cf 命令行单独部署,但无法获得结果。

我给你详细资料

  1. 显示的错误。

白标错误页面 此应用程序没有针对 /error 的显式映射,因此您将其视为后备。 1 月 14 日星期六 04:21:40 UTC 2017 出现意外错误(类型=未找到,状态=404)。 /WEB-INF/jsp/login.jsp

  1. 我的pom文件是

    http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0

    ecommerce.com 网上商店 0.0.1-快照 罐子

    电子商务网上商店 Spring Boot

    的演示项目

    org.springframework.boot spring-boot-starter-parent 1.4.2.RELEASE

    UTF-8编码 UTF-8编码 1.8

    org.springframework.boot spring-boot-starter-security --> org.springframework.boot spring-boot-starter-web

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-log4j2</artifactId>
    </dependency>
    
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-jasper</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
    </dependency>
    <dependency>
        <groupId>com.jayway.jsonpath</groupId>
        <artifactId>json-path</artifactId>
        <scope>test</scope>
    </dependency>
    
    
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-security</artifactId>
    </dependency>
    

    org.springframework.boot spring-boot-maven-插件

3.我的 application.properties 文件是

spring.mvc.view.prefix:/WEB-INF/jsp/

spring.mvc.view.suffix: .jsp

spring.datasource.url= jdbc:mysql://localhost:3306/ecommercestore

spring.datasource.username=root

spring.datasource.password=root

spring.jpa.hibernate.ddl-自动=更新

部署后生成的

3.Themanifest.yml是 应用程序:

从cmd输入以下命令后的结果是

cf push webstore -p target/webstore-0.0.1-SNAPSHOT.jar --no-start

................................................ .................................. C:\Users\santosh dahal\Desktop\excellerant\ecommerce-webstore>cf push webstore -p target/webstore-0.0.1-SNAPSHOT.jar --no-start

正在 org santosh-org / space Myspace as santoshdahal2072@gmail.com 中创建应用程序网上商店... 好的

使用路由网上商店。cfapps.io 正在绑定网上商店。cfapps.io 到网上商店... 好的

正在上传网上商店...

正在从以下位置上传应用程序文件:C:\Users\SANTOS~1\AppData\Local\Temp\unzipped-app904639435

正在上传 478.9K,140 个文件

上传完成 好的

6.我在 pivotal 中转到 myapp 并在将数据库 cleardb 绑定到同一即时和应用程序后启动应用程序,应用程序成功运行 运行 Status

7.文件夹排列如下:

我保留了 jsp 页 src/main/webapp/WEB-INF/jsp/login.jsp

而 application.properties 在 src/main/resources.

如果需要,我会提供更多详细信息。代码的 github link 是

here

您将其打包为罐子而不是 war。在这种情况下,将您的 jsp 文件放入资源下的静态文件夹中,或者按照 link 下面的内容更好地了解打包方面的内容。但是我觉得还是打包成一个war

比较好

Package a spring boot application including JSPs and static resources

同时请检查在将应用程序推送到 PWS 之前生成的 jar 是否 jsp 在请求的路径可用。