求高手指点,tomcat和MyEclipse被我重装了n次,下面是错误信息2012-2-3 15:04:21 org.apache.catalina.core.AprLifecycleListener init
信息: An older version 1.1.17 of the APR based Apache Tomcat Native library is installed, while Tomcat recommends version greater than 1.1.22
2012-2-3 15:04:21 org.apache.catalina.core.AprLifecycleListener init
信息: Loaded APR based Apache Tomcat Native library 1.1.17.
2012-2-3 15:04:21 org.apache.catalina.core.AprLifecycleListener init
信息: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
2012-2-3 15:04:22 org.apache.coyote.http11.Http11AprProtocol init
信息: Initializing Coyote HTTP/1.1 on http-80
2012-2-3 15:04:22 org.apache.coyote.ajp.AjpAprProtocol init
信息: Initializing Coyote AJP/1.3 on ajp-8009
2012-2-3 15:04:22 org.apache.catalina.startup.Catalina load
信息: Initialization processed in 783 ms
2012-2-3 15:04:22 org.apache.catalina.core.StandardService start
信息: Starting service Catalina
2012-2-3 15:04:22 org.apache.catalina.core.StandardEngine start
信息: Starting Servlet Engine: Apache Tomcat/6.0.35
java.lang.reflect.InvocationTargetException
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:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: java.lang.NoSuchMethodError: javax.servlet.ServletContext.getContextPath()Ljava/lang/String;
at org.apache.catalina.core.StandardHost$MemoryLeakTrackingListener.lifecycleEvent(StandardHost.java:616)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4700)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
at org.apache.catalina.core.StandardService.start(StandardService.java:525)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
... 6 more

解决方案 »

  1.   

    tomcat的配置文件我指改了这两个地方
    server.xml<Context path="/web" docBase="E:\webstudy" reloadable="true" >
    <Resource name="jdbc/study"
    auth="Container"
    type="javax.sql.DataSource"
    maxActive="100"
    maxIdle="30"
    maxWait="10000"
    username="root"
    password="mysqladmin"
    driverClassName="org.gjt.mm.mysql.Driver"
    url="jdbc:mysql://localhost:3306/study_java"/>
    </Context>
          </Host>web.xml<servlet>
            <servlet-name>default</servlet-name>
            <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
            <init-param>
                <param-name>debug</param-name>
                <param-value>0</param-value>
            </init-param>
            <init-param>
                <param-name>listings</param-name>
                <param-value>true</param-value>
            </init-param>
            <load-on-startup>1</load-on-startup>
        </servlet>
      

  2.   

    Caused by: java.lang.NoSuchMethodError: javax.servlet.ServletContext.getContextPath()Ljava/lang/String;楼主看看tomcat6配置的jdk版本和myecliopse默认的jdk版本是否一致,都换成1.6的试试吧。
      

  3.   

    我装的jdk的版本是:java version "1.6.0_29"的,myeclipse中配置服务器的时候配置的也是此jdk的安装目录,tomcat安装的时候选择的也是该jdk的jre目录。jdk的版本除了这个我机器上没有其他的jdk版本,tomcat倒是有两个,有个5.5的我把它的目录剪切到其他目录了,再装的tomcat6。
    在myeclipse选择自带的jdk,可以正常启动tomcat,myeclipse自带的是1.6.0_13的
      

  4.   

    请坚持jsp-api.jar和servlet-api.jar
      

  5.   

    请检查jsp-api.jar和servlet-api.jar,
      

  6.   

    这两个jar文件在tomcat的lib目录下有。
      

  7.   

    呵呵,之前用tomcat5.5的时,MyEclipse也没这问题。
      

  8.   

    tomcat换个版本试试?你看你tomcat能单独启动不?
      

  9.   

    Tomcat可以单独启动。信息: Loaded APR based Apache Tomcat Native library 1.1.17.
    2012-2-3 18:17:32 org.apache.catalina.core.AprLifecycleListener init
    信息: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], ra
    ndom [true].
    2012-2-3 18:17:33 org.apache.coyote.http11.Http11AprProtocol init
    信息: Initializing Coyote HTTP/1.1 on http-80
    2012-2-3 18:17:33 org.apache.coyote.ajp.AjpAprProtocol init
    信息: Initializing Coyote AJP/1.3 on ajp-8009
    2012-2-3 18:17:33 org.apache.catalina.startup.Catalina load
    信息: Initialization processed in 1537 ms
    2012-2-3 18:17:33 org.apache.catalina.core.StandardService start
    信息: Starting service Catalina
    2012-2-3 18:17:33 org.apache.catalina.core.StandardEngine start
    信息: Starting Servlet Engine: Apache Tomcat/6.0.35
    2012-2-3 18:17:34 org.apache.catalina.startup.HostConfig deployDirectory
    信息: Deploying web application directory ROOT
    2012-2-3 18:17:34 org.apache.catalina.startup.HostConfig deployDirectory
    信息: Deploying web application directory Test
    2012-2-3 18:17:34 org.apache.coyote.http11.Http11AprProtocol start
    信息: Starting Coyote HTTP/1.1 on http-80
    2012-2-3 18:17:34 org.apache.coyote.ajp.AjpAprProtocol start
    信息: Starting Coyote AJP/1.3 on ajp-8009
    2012-2-3 18:17:34 org.apache.catalina.startup.Catalina start
    信息: Server startup in 899 ms
      

  10.   

    getContextPath()在servlet 2.5下才有的,servlet 2.4是没有这个方法的. Servlet2.5只能适用基于J2SE 5.0开发的平台Caused by: java.lang.NoSuchMethodError: javax.servlet.ServletContext.getContextPath()Ljava/lang/String
    异常很明显 
      

  11.   

    感谢楼上各位的帮助,换了一个jdk的版本就好了。再次感谢各位的热心帮助!