在maven中配置以下依赖:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
在resin-3.0.28中运行,报以下错误:
Servlet.service() for servlet jsp threw exception
java.lang.NoClassDefFoundError: javax/el/ELException
原因是容器不支持JSTL1.2,换成以下依赖就好了:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.1.2</version>
</dependency>
Tomcat中也有同样的问题
Tomcat6 JSP2.1 / Servlet2.5 / JSTL2.0
Tomcat5 JSP2.0 / Servlet2.4 / JSTL1.1
Tomcat4 JSP1.2 / Servlet2.3 / JSTL1.0
resin-3.0.28 JSP2.0 / Servlet2.4 / JSTL1.1
Tomcat5与Tomcat6的EL冲突,JSTL的版本问题
Servlet.service() for servlet jsp threw exception
java.lang.NoClassDefFoundError: javax/el/ELException
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2365)
at java.lang.Class.getDeclaredMethods(Class.java:1763)
at java.beans.Introspector$1.run(Introspector.java:1259)
at java.security.AccessController.doPrivileged(Native Method)
at java.beans.Introspector.getPublicDeclaredMethods(Introspector.java:1257)
at java.beans.Introspector.getTargetMethodInfo(Introspector.java:1125)
at java.beans.Introspector.getBeanInfo(Introspector.java:383)
at java.beans.Introspector.getBeanInfo(Introspector.java:155)
at java.beans.Introspector.getBeanInfo(Introspector.java:216)
at java.beans.Introspector.<init>(Introspector.java:364)
at java.beans.Introspector.getBeanInfo(Introspector.java:155)
at org.apache.jasper.compiler.Generator$TagHandlerInfo.<init>(Generator.java:3673)
at org.apache.jasper.compiler.Generator$GenerateVisitor.getTagHandlerInfo(Generator.java:2092)
at org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1573)
at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1441)
at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163)
at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2213)
at org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2219)
这个问题应该是出在JSTL的支持上,通过查看,原来系统使用了JSTL1.2。
JSTL1.2
The JSTL 1.2 Maintenace Release aligns with the Unified Expression Language (EL) that is being delivered as part of the JavaServer Pages (JSP) 2.1 specification。JSTL 1.2 is part of the Java EE 5 platform. (from http://java.sun.com/products/jsp/jstl/)
JSTL1.1
Jakarta Taglibs hosts the Standard Taglib 1.1, an implementation of the JSP Standard Tag Library (JSTL), version 1.1, which was developed under the Java Community Process.
NOTE: Standard-1.1 (JSTL 1.1) requires a JSP container that supports the Java Servlet 2.4 and JavaServer Pages 2.0 specifications. Jakarta Tomcat 5 supports the new specifications. The Standard-1.1 taglib has been tested with Tomcat 5.0.3.
JSTL1.0
Standard-1.0 (implementation of the JSTL 1.0 specification) requires a JSP container that supports the Java Servlet 2.3 and JavaServer Pages 1.2 specifications. Jakarta Tomcat 4 supports these specifications. The Standard 1.0 taglib has been tested with Tomcat 4.1.24. (from http://jakarta.apache.org/taglibs/doc/standard-doc/intro.html)
Tomcat6 实现了servlet 2.5 和JSP2.1的规范,可以支持JSTL1.2;
而Tomcat5实现了 servlet 2.4 和JSP2.0的规范,只能支持JSTL1.1
所以,只要使用JSTL1.1(standard-1.1.jar和jstl-1.1.jar)替换JSTL1.2(jstl-1.2.jar)即可在Tomcat5下正常运行!
另外,web.xml必须指定使用servlet 2.4 和JSP2.0的规范:
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/gtuu0123/archive/2009/12/05/4946452.aspx
分享到:
相关推荐
jdk升级之后出现异常:java.lang.NoClassDefFoundError: javax/xml/ws/Service 1、解决方案jdk降级至1.8之前 2、由于JDK9以后,去除了javax.xml包需要引入对应的jar包 <groupId>javax.activation</groupId> ...
JavaMail的java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream错误 原因: MyEclipse6.5的javaee.jar中的mail包与JavaMail包有冲突。 解决: 在MyEclipse目录下(D:\Program Files\MyEclipse ...
java.lang.NoClassDefFoundError: de/javakaffee/kryoserializers/CurrencySerializer
java.lang.NoClassDefFoundError: com/sun/activation/registries/LogSupport异常处理
该jar包解决报错java.lang.NoClassDefFoundError: org/apache/james/mime4j/MimeException,亲测可用。
NULL 博文链接:https://lyndon-lin.iteye.com/blog/856002
NULL 博文链接:https://bijian1013.iteye.com/blog/2305804
NULL 博文链接:https://lym6520.iteye.com/blog/310725
jdk升级jdk10后,原本jdk自带的 webservice一些包确实,引起的一系列错误解决方案
NULL 博文链接:https://chen106106.iteye.com/blog/1596135
NULL 博文链接:https://jaychang.iteye.com/blog/980159
jackson-annotations-2.10.2.jar jackson-core-2.10.2.jar jackson-databind-2.10.2.jar NoClassDefFoundError解决
NULL 博文链接:https://chinrui.iteye.com/blog/1859820
解决方法如下: 把以前的eclipse版本,我这里用的是3.3版本 在plugins org.eclipse.ui.workbench_3.3.1.M20070921-1200.jar下 打到org/eclipse/ui/internal/util/SWTResourceUtil.class 用winrar打开,同时也...
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/jersey/api/client/config/ClientConfig at org.apache.hadoop.yarn.client.api.TimelineClient.createTimelineClient(TimelineClient.java:...
Exception in thread "main" java.lang.NoClassDefFoundError: javax/mail/Message at com.bulktree.mail.SimpleMailTest.mail(SimpleMailTest.java:30) at com.bulktree.mail.SimpleMailTest.main(SimpleMailTest...
java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
NULL 博文链接:https://jyao.iteye.com/blog/1235905
NULL 博文链接:https://hnychenl.iteye.com/blog/675625