【问题标题】:JSP with JSTL not working on tomcat 8 in a Spring Boot Application带有 JSTL 的 JSP 在 Spring Boot 应用程序中无法在 tomcat 8 上运行
【发布时间】:2016-03-11 11:10:56
【问题描述】:

我已经在 pom.xml 中包含了这些依赖项。

        <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>

我仍然收到 javax.servlet.ServletException: java.lang.NoSuchMethodError: org.apache.el.lang.ELSupport.coerceToType(Ljavax/el/ELContext;Ljava/lang/Object;Ljava/lang/Class;) Ljava/lang/Object;

我还在 pom.xml 中添加了一个依赖项。

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

然后错误变为 An exception occurred processing JSP page /WEB-INF/views/index.jsp at line 7 4: [[[[ JSTL CODE USING EXPRESSION LANGUAGE] ]]

在 Eclipse IDE 中一切正常,但无法在单独的 tomcat 服务器上部署。

【问题讨论】:

    标签: spring-boot


    【解决方案1】:

    由于您的 Tomcat 8.0\webapps\AppName\WEB-INF\lib 文件夹中存在 tomcat-embed-el-8.0.32.jar,您遇到了以下错误。

    javax.servlet.ServletException: java.lang.NoSuchMethodError:
    org.apache.el.lang.ELSupport.coerceToType(Ljavax/el/ELContext;Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
    

    此错误是由于 Tomcat 提供的 ELSupport.class 与应用程序 @987654327 中存在的 tomcat-embed-el-8.0.32.jar 之间的冲突所致@ 目录,因此您会在 Tomcat 中收到该错误。而且它在 Eclipse 中运行良好,因为它使用嵌入式服务器。

    要解决此问题,请在您的 pom.xml 中添加以下代码:

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

    当您将 tomcat-embed-el 依赖项添加为 scope=required 时,tomcat-embed-el-8.0.32.jar 将不会添加到您的 \AppName\WEB-INF\lib 文件夹中。

    有关信息,请查看 Spring-Boot 的 Github 存储库上的 Issue

    您还可以使用这些示例应用:

    1. Spring-Boot-Jsp-Demo 配置了InternalResourceViewResolver bean。
    2. spring-boot-sample-tomcat-jsp 配置为 application.properties 就像在 spring-boot 示例应用中一样。

    【讨论】:

      猜你喜欢
      • 2018-05-13
      • 2017-05-30
      • 2016-06-20
      • 1970-01-01
      • 2017-12-15
      • 2017-04-19
      • 1970-01-01
      • 2015-10-03
      • 2018-09-04
      相关资源
      最近更新 更多