【问题标题】:JSP not found when running Spring Boot in IDE, but works when running manually在IDE中运行Spring Boot时找不到JSP,但在手动运行时可以工作
【发布时间】:2016-12-25 17:27:49
【问题描述】:

我有一个 java web 应用程序代码(从远程 git 服务器签出 - 其他用户没有我的问题)并将其导入 IntelliJ(最新版本),我从 IDE 执行以下步骤:maven clean install,run(它的 spring启动应用程序,因此在运行配置中没有要配置的参数或参数来设置 - 我将它与其他计算机上 IDE 的设置进行了比较 - 没有差异),然后我向服务器发送了一个请求,结果为“404 - /WEB-INF/. ./some.jsp 未找到)但在解压缩的 WAR 中存在此文件!此外,当我手动运行此战争(java -jar app.war)时,我的请求已成功发送,结果是肯定的 - 显示了视图。所以,肯定有IDE 出了点问题。我几乎尝试了所有方法:我重新安装了 IDE,我删除了 .m2 存储库,我再次检查了代码,我尝试了不同的 IDE 版本,但问题仍然存在。可能是什么问题?

【问题讨论】:

  • 您在使用自己的本地服务器吗?在服务器工作中,您检查过临时文件夹吗?或者清理了那些文件夹?

标签: spring jsp intellij-idea spring-boot http-status-code-404


【解决方案1】:

也许您的应用程序使用调度程序 servlet,因此您的请求已映射,您无法请求 jsp 文件的确切路径,并且您的浏览器显示 404 未找到 ,检查你的 web.xml 有这样的代码

<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

并搜索使用 jspResolver 或类似的东西的 *.xml 文件

<bean id="jspViewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/view/"></property>
    <property name="suffix" value=".jsp"></property>
</bean>

如果你找到它,你应该像这样请求例如

http://localhost:8080/nameofyourapp/index

而不是http://localhost:8080/nameofyourapp/WEB-INF/view/index.jsp

【讨论】:

    【解决方案2】:

    Spring Boot 默认不包含 Jasper,因此除非您明确包含该库,否则 JSP 渲染不起作用:

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

    下面的库也是必需的,希望你已经添加:

    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>jstl</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
       <groupId>org.apache.tomcat.embed</groupId>
       <artifactId>tomcat-embed-core</artifactId>
       <version>${tomcat.version}</version>
     </dependency>
     <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-logging-juli</artifactId>
        <version>${tomcat.version}</version>
    </dependency>
    <dependency>
       <groupId>org.apache.tomcat</groupId>
       <artifactId>tomcat-jasper</artifactId>
       <version>${tomcat.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>tomcat-jasper-el</artifactId>
        <version>${tomcat.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>tomcat-jsp-api</artifactId>
        <version>${tomcat.version}</version>
    </dependency>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-22
      • 1970-01-01
      • 2016-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多