加载spring3.0.3的jar包后报 java.lang.NoSuchMethodException: javax.servlet.ServletConte

wingerliwei 2010-09-16 11:16:37
我用的是tomcat6.0.20, jdk1.6.0_15,Eclipse3.6,windows7 配置spring2启动没有问题,但是换成spring3.0.3的jar包之后,启动server就报错,这是怎么回事啊,同样环境在另外一台windows XP的机子上就能启动,错误信息如下,还望赐教:

java.lang.IllegalStateException: Failed to invoke Servlet 2.5 getContextPath method
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:268)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:197)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3934)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4429)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:722)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:583)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: java.lang.NoSuchMethodException: javax.servlet.ServletContext.getContextPath()
at java.lang.Class.getMethod(Class.java:1605)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:263)
... 17 more
...全文
363 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
土拉耗子 2010-10-22
  • 打赏
  • 举报
回复
奇怪,为什么升级jdk就好了,我感觉就是sevlet的包问题。j2ee4,我换成5就好了。看了下包结构,里面有servlet,而我本地确实也有servlet2.5版本的,搞不懂了。
BearKin 2010-09-17
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wingerliwei 的回复:]

加上这几个包了,还是不行
[/Quote]
j2ee版本不行把

你的servlet-api.jar的版本似乎低了些 提升下看看?
wingerliwei 2010-09-17
  • 打赏
  • 举报
回复
加上这几个包了,还是不行
wingerliwei 2010-09-17
  • 打赏
  • 举报
回复
哦,还真没加asm和cglib两个包,不过为啥在XP里的没问题呢,回家再试试,要是可以了就结贴
wingerliwei 2010-09-17
  • 打赏
  • 举报
回复
目前问题解决了,升级了一下jdk的版本,从1.6.0_05升级到了1.6.0_21,就不报错了,其他配置都没变。
BearKin 2010-09-17
  • 打赏
  • 举报
回复
java.lang.IllegalStateException: Failed to invoke Servlet 2.5 getContextPath method

Spring使用这个方法的时候是错误的 你看看你发布后的项目里面有几个Servlet的jar 全部删除掉又有什么别的异常
wingerliwei 2010-09-17
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 bearkin 的回复:]
引用 4 楼 wingerliwei 的回复:

加上这几个包了,还是不行

j2ee版本不行把

你的servlet-api.jar的版本似乎低了些 提升下看看?
[/Quote]


用了servlet-2_5-api.jar,还是不行,难道spring3.0还不稳定么,我换成spring2.5.6的jar,就没问题,什么原因呢
KingIsOut 2010-09-16
  • 打赏
  • 举报
回复
仔细看看项目架包有没有导错
看看Spring3.0的官方文档!
Spring3.0支持比较高的JDK1.6以上,WEB 容器版本!
特别是下面两个架包必须是高版本


asm-3.2.jar
cglib-2.2.jar
commons-logging-1.1.1.jar

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧