java - 使用 Eclipse 的 Apache Tomcat 启动错误

标签 java eclipse tomcat

<分区>

我在 Mac 上使用 Eclipse Luna (4.4) 以及 Java 1.8 和 Tomcat 7。 在配置或未配置应用程序的情况下使用 Eclipse 设置 Tomcat 时,我无法启动它。

我在 Eclipse 控制台中看到以下堆栈跟踪


    Jul 13, 2015 2:02:42 PM org.apache.catalina.core.AprLifecycleListener init
    INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /Users/apadmanabhan/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.
    Jul 13, 2015 2:02:42 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
    WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:RESTfulPhoneBook' did not find a matching property.
    Jul 13, 2015 2:02:42 PM org.apache.coyote.AbstractProtocol init
    INFO: Initializing ProtocolHandler ["http-bio-8080"]
    Jul 13, 2015 2:02:42 PM org.apache.coyote.AbstractProtocol init
    INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
    Jul 13, 2015 2:02:42 PM org.apache.catalina.startup.Catalina load
    INFO: Initialization processed in 593 ms
    Jul 13, 2015 2:02:42 PM org.apache.catalina.core.StandardService startInternal
    INFO: Starting service Catalina
    Jul 13, 2015 2:02:42 PM org.apache.catalina.core.StandardEngine startInternal
    INFO: Starting Servlet Engine: Apache Tomcat/7.0.55
    Jul 13, 2015 2:02:42 PM org.apache.tomcat.util.descriptor.DigesterFactory locationFor
    WARNING: The XML schema [javaee_web_services_1_2.xsd] could not be found. This is very likely to break XML validation if XML validation is enabled.
    Jul 13, 2015 2:02:42 PM org.apache.tomcat.util.descriptor.DigesterFactory locationFor
    WARNING: The XML schema [web-app_3_0.xsd] could not be found. This is very likely to break XML validation if XML validation is enabled.
    Jul 13, 2015 2:02:42 PM org.apache.tomcat.util.descriptor.DigesterFactory locationFor
    WARNING: The XML schema [web-fragment_3_0.xsd] could not be found. This is very likely to break XML validation if XML validation is enabled.
    Jul 13, 2015 2:02:42 PM org.apache.tomcat.util.descriptor.DigesterFactory locationFor
    WARNING: The XML schema [web-common_3_0.xsd] could not be found. This is very likely to break XML validation if XML validation is enabled.
    Jul 13, 2015 2:02:42 PM org.apache.tomcat.util.descriptor.DigesterFactory locationFor
    WARNING: The XML schema [javaee_6.xsd] could not be found. This is very likely to break XML validation if XML validation is enabled.
    Jul 13, 2015 2:02:42 PM org.apache.tomcat.util.descriptor.DigesterFactory locationFor
    WARNING: The XML schema [javaee_web_services_1_3.xsd] could not be found. This is very likely to break XML validation if XML validation is enabled.
    Jul 13, 2015 2:02:42 PM org.apache.tomcat.util.descriptor.DigesterFactory locationFor
    WARNING: The XML schema [javaee_web_services_client_1_3.xsd] could not be found. This is very likely to break XML validation if XML validation is enabled.
    Jul 13, 2015 2:02:42 PM org.apache.catalina.core.ContainerBase startInternal
    SEVERE: A child container failed during start
    java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]
        at java.util.concurrent.FutureTask.report(FutureTask.java:122)
        at java.util.concurrent.FutureTask.get(FutureTask.java:192)
        at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123)
        at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:816)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1575)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1565)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
    Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
        ... 6 more
    Caused by: java.lang.NoSuchMethodError: javax.servlet.ServletContext.getClassLoader()Ljava/lang/ClassLoader;
        at org.apache.catalina.startup.WebappServiceLoader.load(WebappServiceLoader.java:90)
        at org.apache.catalina.startup.ContextConfig.processServletContainerInitializers(ContextConfig.java:1546)
        at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1268)
        at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:876)
        at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:374)
        at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
        at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5378)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
        ... 6 more

类似的错误还有很多。 我已经尝试了一些东西,比如编辑权限以获得对 tomcat 安装目录的完全访问权限,玩弄不同的 tomcat v.s. java 安装但似乎没有帮助。

有什么想法吗?

最佳答案

此方法 javax.servlet.ServletContext.getClassLoader()Ljava/lang/ClassLoader 是在 Servlet 3.0 中引入的。而且,Tomcat 7.0 应该有那个 Servlet 3.0 API jar。

但是,您应该在类路径中的其他地方有一个较旧的 servlet-api.jar。

验证您的类路径以查看是否有任何其他对 servlet-api.jar 的引用

将 -verbose:class 参数传递给 java 可执行文件。它将打印如下内容:

[Loaded javax.servlet.Servlet from file:/home:/.../lib/servlet-api.jar]

关于java - 使用 Eclipse 的 Apache Tomcat 启动错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31393738/

相关文章:

java - Android 从另一个 Activity 中获取结果

Eclipse Kepler JPA 错误

tomcat - 如何在 Tomcat 7 中缓存请求结果?

java - 高效的 JSP/Tomcat 持久存储?

java - 如何在不同的gradle任务之间共享参数

java - PostgreSQL - 使用 JDBC 写入 inet 列

java - 本地广播接收器异常 : android. app.IntentReceiverLeaked?

java - 如何更改 Eclipse 中的工作区?

java - Android - 无法初始化监视器线程 : Unable to establish loopback connection,

tomcat - 在tomcat上多次部署同一个应用