使用JSTL的JSP无法在Spring Boot应用程序中使用tomcat 8

时间:2016-03-11 11:10:56

标签: spring-boot

我已将这些依赖项包含在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 /郎/对象;

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

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

然后错误更改为在第7行处理JSP页面/WEB-INF/views/index.jsp时发生异常4:&lt;%@ page session =“false”%&gt; [[[[[使用表达语言的JSTL代码]]]

在eclipse ide中一切正常,但不能在单独的tomcat服务器上进行部署。

1 个答案:

答案 0 :(得分:1)

由于New-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem" -Name "MaximumTunnelEntries" -Value 0 -PropertyType "DWord"文件夹中存在 tomcat-embed-el-8.0.32.jar ,您收到以下错误。

Tomcat 8.0\webapps\AppName\WEB-INF\lib

此错误是由于 Tomcat 提供的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-embed-el-8.0.32.jar 之间的冲突造成的ELSupport.class目录,因此您在Tomcat中收到该错误。它在Eclipse中运行良好,因为它使用嵌入式服务器。

要解决此问题,请在lib

中添加以下代码
pom.xml

当您将<dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-el</artifactId> <scope>provided</scope> </dependency> 依赖项添加为tomcat-embed-el时, tomcat-embed-el-8.0.32.jar 将不会添加到您的scope=required文件夹中

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

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

  1. Spring-Boot-Jsp-Demo配置了\AppName\WEB-INF\lib bean。
  2. spring-boot-sample-tomcat-jsp配置了InternalResourceViewResolver,就像在spring-boot示例应用程序中一样。