最近做程序时
就是自定义一个 JSTL 标签,输出文字到 JSP 中
遇到这个错误
java.lang.NoSuchMethodError: javax.servlet.ServletContext.getContextPath()Ljava/lang/String;
我翻开java ee 的jar包,里面明明有这个方法呀,居然敢说没有,颠倒是非,郁闷呀。后来google了一下,在下面的地址
http://www.mojavelinux.com/wiki/doku.php?id=java:developmentnotes
找到了一点线索:
This
exception results from attempting to use Java EE 5 components (such as
JSF 1.2) in a J2EE 1.4 environment. Either the container does not
support Java EE 5 or you have the 2.4 servlet API somewhere in the
runtime path.
我用的是tomcat 5.5 , MyEclipse 7.5, JSTL 1.2 用的也都是java EE 5 的jar包,后来猜猜可能是 JSTL 版本问题,经我多方查找,果然不出所料,在下面的地址:
http://blog.csdn.net/Jack850703/archive/2009/05/08/4160827.aspx
找到
分
析:这个问题网上找了半天没看到解决方法,只好自己想办法。想起先前看到的一个知识 点:tomcat 6 实现了 servlet 2.5
和JSP2.1的规范相应的 tomcat 5 实现的是
2.4和2.0,想到tomcat5不支持JSTL1.2,于是替换JSTL1.1的包试试看后,问题解决
解决方法:移出工程lib目录中的JSTL1.2.jar,添加standard-1.1.jar和JSTL1.1.jar
总结:
jstl1.1
版本由2个必要包构成:standard-1.1.jar和
JSTL1.1.jar;而jstl1.1版本只有一个必要包JSTL1.2.jar。(一开始在替换的过程中想当然的用JSTL1.1.jar换
JSTL1.2.jar,然后遗漏了standard-1.1.jar,耽搁了不少时间。)
经测试,tomcat6.0支持JSTL1.2版本,也支持JSTL1.1版本;tomcat5.5只支持JSTL1.1(JSTL1.1一下版本未测试)
不
建议将2个版本的3个包同时放在工程中,可能会发生版本冲突。(另外,实际操作的时候发现
JSTL1.2.jar和JSTL1.1.jar这2个包放一起可以在tomcat5.5和tomcat6.0上跑,鉴于JSTL1.1.jar里面没有
c.tld等文件,猜测JSTL1.1.jar里面只是放置了1.1的专用的类和信息)
也就是说
tomcat 5.5 不支持 JSTL 1.2, 要换成tomcat 6 才支持。
分享到:
相关推荐
在Java开发中,`NoSuchMethodError`是一个常见的运行时异常,通常发生在试图调用一个不存在的方法时。这个错误与JVM的类加载机制密切相关。本文将深入探讨`NoSuchMethodError`,并结合“jar-duplicate-test”这个...
在Java编程中,`java.lang.NoSuchMethodError`异常是一个运行时异常,通常发生在程序试图执行一个不存在的方法时。这个异常的出现通常意味着编译时和运行时的类版本不匹配,或者是在编译期间存在而运行时不存在的...
在Java编程中,`NoSuchMethodError`是一个运行时异常,通常发生在尝试执行一个包含不存在方法的代码时。这个错误表明在编译期间存在某个方法,但在运行时却无法找到。这种情况可能由于以下几种原因引起: 1. **版本...
在Java编程中,`java.lang.NoSuchMethodError`异常是一个运行时异常,通常发生在尝试执行一个在编译时可用但在运行时不可用的方法时。这个异常表明某个已经加载的类定义了一个方法,但该方法的实际行为无法被找到。...
解决 java.lang.NoSuchMethodError 的错误 Java.lang.NoSuchMethodError 错误是一种常见的 Java 异常,它发生在 Java 虚拟机 (JVM) 无法找到某个类的特定方法时。这种错误可能是由于项目依赖比较复杂、Java 运行...
《系统稳定性——NoSuchMethodError常见原因及解决方法》 NoSuchMethodError是Java编程中常见的运行时错误,当应用程序尝试调用一个类的特定方法,但该类已经不再包含该方法的定义时,就会抛出这个错误。这通常发生...
NoSuchMethodError是Java中一个常见的运行时错误,通常与类的定义不一致、库版本冲突或类加载问题有关。要解决这个异常,需要仔细检查方法签名、依赖关系、类版本冲突以及JAR包冲突。通过遵循最佳实践和使用构建工具...
NULL 博文链接:https://albert0707.iteye.com/blog/562969
在Java编程中,`NoSuchMethodError` 是一个常见的运行时异常,它表示在类加载时找到了该类,但在该类中却找不到特定方法的定义。这个问题通常发生在不同版本的库之间存在不兼容的情况,即在编译时使用的库版本包含了...
1) Error injecting constructor, java.lang.NoSuchMethodError: org.apache.maven.model.validation.DefaultModelValidator: method 'void ()' not found at org.jetbrains.idea.maven.server.embedder....
NULL 博文链接:https://yangzb.iteye.com/blog/265212
Ruby-ActsAsVotable是一个流行的Ruby gem,它允许开发者将投票功能轻松地集成到他们的ActiveRecord模型中。这个库的目的是使用户能够为任何对象(如博客文章、评论或其他社区内容)添加“喜欢”、“不喜欢”、“赞同...
在Java中,有时我们可能会遇到`java.lang.NoSuchMethodError`,这通常发生在运行时尝试执行一个在编译时存在但在运行时不存在的方法。对于这个问题,CGlib提供了解决方案。CGlib使用ASM库(一个Java字节码操纵和分析...
用于解决struts2升级至2.3.37时 出现java.lang.NoSuchMethodError: com.opensymphony.xwork2.ActionContext.put(Ljava/lang/异常时,更换的xwork-core-2.3.37.jar
在开源生态系统中,Spark 3.0、Koalas 和 Delta Lake 是当前备受瞩目的技术,它们在大数据处理和分析领域带来了许多创新和改进。本文将深入探讨这些技术的最新发展及其对Java开发者的影响。 首先,Apache Spark 3.0...
### Pentaho Kettle Solutions 关键知识点 #### 一、Pentaho Kettle 概述 - **起源**:Pentaho Kettle 起源于对高效数据集成工具的需求,旨在解决日益复杂的数据仓库构建和维护问题。 - **本书介绍**: ...
在Android开发中,WebView是一个非常重要的组件,它允许开发者在应用程序内部嵌入一个浏览器功能,以便用户可以直接在应用中浏览网页内容。WebView基于WebKit渲染引擎,提供了与浏览器类似的功能,如加载网页、执行...
Apache Kylin是一款开源的OLAP分析引擎,最初是作为Hadoop上的一层来优化大数据集上的查询。Kylin支持多种数据源,可以将数据存储在各种分布式存储系统中,比如HDFS、S3或本地存储,并提供快速查询的分析能力。...