我用的是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 

解决方案 »

  1.   

    仔细看看项目架包有没有导错
    看看Spring3.0的官方文档!
    Spring3.0支持比较高的JDK1.6以上,WEB 容器版本!
    特别是下面两个架包必须是高版本
    asm-3.2.jar
    cglib-2.2.jar
    commons-logging-1.1.1.jar
      

  2.   

    哦,还真没加asm和cglib两个包,不过为啥在XP里的没问题呢,回家再试试,要是可以了就结贴
      

  3.   

    j2ee版本不行把你的servlet-api.jar的版本似乎低了些 提升下看看?
      

  4.   

    用了servlet-2_5-api.jar,还是不行,难道spring3.0还不稳定么,我换成spring2.5.6的jar,就没问题,什么原因呢
      

  5.   

    java.lang.IllegalStateException: Failed to invoke Servlet 2.5 getContextPath method  Spring使用这个方法的时候是错误的 你看看你发布后的项目里面有几个Servlet的jar 全部删除掉又有什么别的异常
      

  6.   

    目前问题解决了,升级了一下jdk的版本,从1.6.0_05升级到了1.6.0_21,就不报错了,其他配置都没变。
      

  7.   

    奇怪,为什么升级jdk就好了,我感觉就是sevlet的包问题。j2ee4,我换成5就好了。看了下包结构,里面有servlet,而我本地确实也有servlet2.5版本的,搞不懂了。