javax.servlet.jsp.JspException : javax/el/ValueExpression in Tomcat 5. 5

标签 java spring jstl tomcat5.5

我的 Spring 应用程序(webapp ver 2.5)在 Tomcat 6.0 上运行良好。然而,在我将它转换为 webapp ver 2.4 以在 Tomcat 5.5 上运行后,我遇到了以下异常:

exception

org.apache.jasper.JasperException: javax.servlet.jsp.JspException: javax/el/ValueExpression
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:460)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:355)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238)
    org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250)
    org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1047)
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:817)
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:669)
    org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:574)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause

javax.servlet.ServletException: javax.servlet.jsp.JspException: javax/el/ValueExpression
    org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:837)
    org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:774)
    org.apache.jsp.WEB_002dINF.jsp.index_jsp._jspService(index_jsp.java:141)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238)
    org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250)
    org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1047)
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:817)
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:669)
    org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:574)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause

java.lang.NoClassDefFoundError: javax/el/ValueExpression
    java.lang.Class.getDeclaredMethods0(Native Method)
    java.lang.Class.privateGetDeclaredMethods(Class.java:2427)
    java.lang.Class.getDeclaredMethods(Class.java:1791)
    java.beans.Introspector$1.run(Introspector.java:1287)
    java.security.AccessController.doPrivileged(Native Method)
    java.beans.Introspector.getPublicDeclaredMethods(Introspector.java:1285)
    java.beans.Introspector.getTargetMethodInfo(Introspector.java:1151)
    java.beans.Introspector.getBeanInfo(Introspector.java:402)
    java.beans.Introspector.getBeanInfo(Introspector.java:168)
    java.beans.Introspector.getBeanInfo(Introspector.java:229)
    java.beans.Introspector.<init>(Introspector.java:383)
    java.beans.Introspector.getBeanInfo(Introspector.java:168)
    java.beans.Introspector.getBeanInfo(Introspector.java:229)
    java.beans.Introspector.<init>(Introspector.java:383)
    java.beans.Introspector.getBeanInfo(Introspector.java:168)
    org.apache.jasper.compiler.Generator$TagHandlerInfo.<init>(Generator.java:3729)
    org.apache.jasper.compiler.Generator$GenerateVisitor.getTagHandlerInfo(Generator.java:2132)
    org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1600)
    org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1442)
    org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2166)
    org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2216)
    org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1706)
    org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1442)
    org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2166)
    org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2216)
    org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1706)
    org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1442)
    org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2166)
    org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2216)
    org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2222)
    org.apache.jasper.compiler.Node$Root.accept(Node.java:457)
    org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2166)
    org.apache.jasper.compiler.Generator.generate(Generator.java:3321)
    org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:199)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:296)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:277)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:265)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:564)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:302)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    org.apache.taglibs.standard.tag.common.core.ImportSupport.acquireString(ImportSupport.java:314)
    org.apache.taglibs.standard.tag.common.core.ImportSupport.doEndTag(ImportSupport.java:171)
    org.apache.jsp.WEB_002dINF.jsp.index_jsp._jspx_meth_c_005fimport_005f1(index_jsp.java:186)
    org.apache.jsp.WEB_002dINF.jsp.index_jsp._jspService(index_jsp.java:104)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238)
    org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250)
    org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1047)
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:817)
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:669)
    org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:574)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause

java.lang.ClassNotFoundException: javax.el.ValueExpression
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1363)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1209)
    java.lang.ClassLoader.loadClassInternal(ClassLoader.java:316)
    java.lang.Class.getDeclaredMethods0(Native Method)
    java.lang.Class.privateGetDeclaredMethods(Class.java:2427)
    java.lang.Class.getDeclaredMethods(Class.java:1791)
    java.beans.Introspector$1.run(Introspector.java:1287)
    java.security.AccessController.doPrivileged(Native Method)
    java.beans.Introspector.getPublicDeclaredMethods(Introspector.java:1285)
    java.beans.Introspector.getTargetMethodInfo(Introspector.java:1151)
    java.beans.Introspector.getBeanInfo(Introspector.java:402)
    java.beans.Introspector.getBeanInfo(Introspector.java:168)
    java.beans.Introspector.getBeanInfo(Introspector.java:229)
    java.beans.Introspector.<init>(Introspector.java:383)
    java.beans.Introspector.getBeanInfo(Introspector.java:168)
    java.beans.Introspector.getBeanInfo(Introspector.java:229)
    java.beans.Introspector.<init>(Introspector.java:383)
    java.beans.Introspector.getBeanInfo(Introspector.java:168)
    org.apache.jasper.compiler.Generator$TagHandlerInfo.<init>(Generator.java:3729)
    org.apache.jasper.compiler.Generator$GenerateVisitor.getTagHandlerInfo(Generator.java:2132)
    org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1600)
    org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1442)
    org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2166)
    org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2216)
    org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1706)
    org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1442)
    org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2166)
    org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2216)
    org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1706)
    org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1442)
    org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2166)
    org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2216)
    org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2222)
    org.apache.jasper.compiler.Node$Root.accept(Node.java:457)
    org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2166)
    org.apache.jasper.compiler.Generator.generate(Generator.java:3321)
    org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:199)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:296)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:277)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:265)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:564)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:302)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    org.apache.taglibs.standard.tag.common.core.ImportSupport.acquireString(ImportSupport.java:314)
    org.apache.taglibs.standard.tag.common.core.ImportSupport.doEndTag(ImportSupport.java:171)
    org.apache.jsp.WEB_002dINF.jsp.index_jsp._jspx_meth_c_005fimport_005f1(index_jsp.java:186)
    org.apache.jsp.WEB_002dINF.jsp.index_jsp._jspService(index_jsp.java:104)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238)
    org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250)
    org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1047)
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:817)
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:669)
    org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:574)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

我引用了如下的 JSTL 库:

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

我的图书馆有以下 jar :

asm-3.1.jar
cglib-2.1.jar
commons-codec-1.4.jar
commons-collections-3.2.jar
commons-lang-2.3.jar
commons-logging-1.1.jar
jackson-core-asl-1.7.1.jar
jackson-jaxrs-1.7.1.jar
jackson-mapper-asl-1.7.1.jar
jackson-xc-1.7.1.jar
jersey-client-1.8.jar
jersey-core-1.8.jar
jersey-json-1.8.jar
jersey-server-1.8.jar
jettison-1.1.jar
jsr311-api-1.1.1.jar
jstl-1.2.jar
mail-1.4.1.jar
org.springframework.aop-3.0.6.RELEASE.jar
org.springframework.asm-3.0.6.RELEASE.jar
org.springframework.aspects-3.0.6.RELEASE.jar
org.springframework.beans-3.0.6.RELEASE.jar
org.springframework.context-3.0.6.RELEASE.jar
org.springframework.context.support-3.0.6.RELEASE.jar
org.springframework.core-3.0.6.RELEASE.jar
org.springframework.expression-3.0.6.RELEASE.jar
org.springframework.instrument-3.0.6.RELEASE.jar
org.springframework.instrument.tomcat-3.0.6.RELEASE.jar
org.springframework.jdbc-3.0.6.RELEASE.jar
org.springframework.jms-3.0.6.RELEASE.jar
org.springframework.orm-3.0.6.RELEASE.jar
org.springframework.oxm-3.0.6.RELEASE.jar
org.springframework.test-3.0.6.RELEASE.jar
org.springframework.transaction-3.0.6.RELEASE.jar
org.springframework.web-3.0.6.RELEASE.jar
org.springframework.web.portlet-3.0.6.RELEASE.jar
org.springframework.web.servlet-3.0.6.RELEASE.jar
org.springframework.web.struts-3.0.6.RELEASE.jar
standard-1.0.4.jar
velocity-1.6.jar

从其他帖子了解到,和jSTL有关系,jSTL-1.2.jar不兼容。但是,对于 jSTL-1.1.2、jSTL-1.1.1 和 jSTL-1.1.0,我得到一个错误 Can not find the tag library descriptor for "http://java.sun.com/jsp/jSTL/核心”在jsp中。我认为这可以通过添加 c.tld 和其他 tld 文件并在 web.xml 中引用这些文件来解决。为此,我认为我需要将它们添加到我无权访问的 tomcat 文件夹中(我在共享 Tomcat 上)。

我根据需要添加/删除了以下 jars 以解决此问题,但有一个异常(exception)或另一个。

el-api-6.0.20.jar
jstl-1.1.0.jar
jstl-1.1.2.jar
jstl-1.2.jar
jstl-api-1.2.jar
jstl-impl-1.2.jar

有人知道解决办法吗?

谢谢。

最佳答案

从您的 /WEB-INF/lib list :

jstl-1.2.jar

此 JAR 同时包含 JSTL 1.2 API 和实现,而这又至少需要 Servlet 2.5/JSP/EL 2.1。 javax.el 包是在 JSP/EL 2.1 中引入的,但 Tomcat 5.5 不支持它,这就解释了您在问题中发布的异常。

standard-1.0.4.jar

此 JAR 包含 JSTL 1.0 实现和标签库。这实际上需要一个 JSTL 1.0 API JAR 文件。 JSTL 1.0 的 taglib URI 也不同,它在 URI 中不包含 /jsp,这就解释了用 JSTL 1.1 API 替换 JSTL 1.2 API/impl 时出现的 taglib URI 错误(没有,JSTL 1.1 API 库不包含 impl!)。

Tomcat 5.5 是一个 Servlet 2.4 容器,只能与 JSTL 1.1 一起使用。您需要删除上述提到的 JAR(JSTL 1.2 API/impl 和 JSTL 1.0 impl)两个,然后将其替换为您可以下载的 JSTL 1.1 的两个 JAR here .它是 jSTL.jarstandard.jar,您可以在 ZIP 文件的 /lib 文件夹中找到它们。

关于javax.servlet.jsp.JspException : javax/el/ValueExpression in Tomcat 5. 5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8132720/

相关文章:

java - 以随机顺序显示对

java - Applescript 相当于 "jump to line n#"

java - 在 Spring Batch 步骤之间传递输出

javascript - 如何使用提交上传文件而不重新加载页面

java - 我如何在 Java JSP 的 JSTL 中执行 "nested if"?

java - 使用 JSTL 在 JSP 下拉列表中显示部门代码和描述

java - Comparable 接口(interface)如何工作?

spring - 如何获取 Spring 数据 jpa 中更新记录的计数?

spring - OAuth2 客户端身份验证 Spring

java - 如何替换 JTextField 中预先输入的字符(一次一个)?