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

SpringBoot应用程序在从JAR提供JSP时显示白标签错误页面

阎自怡
2023-03-14

我正在探索如何从JAR文件提供JSP。我使用的是SpringBoot 1.5.10。释放

我提到了这个

  • 包括位于src/main/Resources/META-INF/Resources/WEB-INF/jsp/
  • 位置的JSP
  • 视图解析器的前缀为 /WEB-INF/jsp/,后缀为. jsp

奇怪的事情是,当我运行项目作为启动应用程序或Java应用程序时,我能够击中控制器并得到所需的JSP文件作为响应。之后,我想到了打包应用程序,然后从JAR运行它。

$ mvn package
$ java -jar target/springboot-web-jar-demo-0.0.1-SNAPSHOT.jar

SpringBoot应用程序出现了,当我点击相同的URL模式时,控件出现在映射方法中,但之后。。。

标签错误页

此应用程序没有/error的显式映射,因此您将其视为回退。

星期三2月28日21:01:09 IST 2018
出现意外错误(类型=未找到,状态=404)
/WEB-INF/jsp/index。jsp

我的问题。。。

  • 在IDE中运行的springboot应用程序和作为JAR运行的springboot应用程序之间有什么主要区别吗?这甚至会导致404

我已经尝试寻找合适的解决方案或答案来解决我的问题,但没有得到任何结果。因此,在这里张贴问题,请帮助。

  • 请不要为战争包装提供解决方案
  • 我知道JSP现在不是最好的选择,我只是在学习
  • 我知道我可以寻找其他选择,如thymeleaf、freemarker和velocity
  • 我不想降级SpringBoot版本
  • 我还尝试指定
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.atuldwivedi.learn.springboot</groupId>
<artifactId>springboot-web-jar-demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<name>springboot-web-jar-demo</name>
<description>Learn how to serve JSP from JAR</description>

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.10.RELEASE</version>
    <relativePath />
</parent>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
</properties>

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

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

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

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

</project>

共有3个答案

朱宏爽
2023-03-14

使用可执行jar时不支持JSP。

夏炎彬
2023-03-14

为了让调度服务器识别它们的jsps,您可以在src.main创建一个webapp目录,如下所示:

src/main/webapp/WEB-INF/jsp,并在应用程序中自动配置应用程序。Spring。mvc。看法前缀:/WEB-INF/jsp-spring。mvc。看法后缀:。jsp`

姬心思
2023-03-14

为了让您能够识别他们的JSP,您需要在src中创建一个webapp目录。主要内容如下:

src/main/webapp/WEB-INF/jsp

而不是像:

src/main/resources/META-INF/resources/WEB-INF/jsp

 类似资料:
  • 下面是我的代码:我正在从application.properties文件swagerconfig.java获取所有值 下面是我的springboot初始值设定项: ServletInitializer.java 日志显示它已映射: 这是我得到的错误:

  • 当我使用ide运行我的springboot应用程序时,它工作正常。 但当我运行它的jar时,我得到了白标签错误页面。 白标签错误页面 此应用程序没有 /error的显式映射,因此您将此视为后备。 2018年10月9日星期二15:42:47出现意外错误(类型=未找到,状态=404)/WEB-INF/views/index。jsp

  • 无法使用spring-boot加载非常简单的JSP页面,导致404未找到 HmisApplication.class 主控制器。Java语言 应用属性 pom.xml http://maven.apache.org/xsd/maven-4.0.0.xsd" MVC配置。Java语言 文件结构

  • 我坚持使用这个简单的MVC示例。当我启动应用程序并转到localhost:8080时,我得到了“白标签错误页面”,甚至我在“src/main/资源/模板”中创建了“index.html”。我还在我的索引方法上添加了@Request estMap(“/”)。我找不到问题。 : : -在"src/main/资源/模板"下:

  • 猜猜我哪里错了。。? 错误: 正在创建名为“subjectController”的bean:通过字段“subjectService”表示未满足的依赖关系;嵌套的异常是org。springframework。豆。工厂未满足的依赖项异常:创建名为“subjectServiceImpl”的bean时出错:通过字段“subjectRepository”表示未满足的依赖项;嵌套的异常是org。springf

  • 我有一个对象列表,它具有以下属性 公共类ViewTestCasesBean { } 现在我的行动代码是... 这里详细说明List是要在显示标签中显示的上述对象的List。 我尝试了以下方法 但是得到了以下错误... 编码有什么问题?