启动tomcat时出现nullpointer异常

Tec*_*hno 5 java eclipse tomcat

我的tomcat服务器没有在eclipse中启动,之前工作正常,但现在它显示以下异常.虽然它在日食之外工作得很好.但每当我尝试启动服务器时,会发生以下异常并显示消息="在localhost启动Tomcat服务器v8.0服务器遇到问题"

Dec 08, 2014 4:35:16 PM org.apache.coyote.AbstractProtocol destroy
INFO: Destroying ProtocolHandler ["ajp-nio-8009"]
Dec 08, 2014 4:35:16 PM org.apache.coyote.AbstractProtocol destroy
SEVERE: Failed to destroy end point associated with ProtocolHandler ["ajp-nio-8009"]
java.lang.NullPointerException
    at org.apache.tomcat.util.net.NioEndpoint.releaseCaches(NioEndpoint.java:307)
    at org.apache.tomcat.util.net.NioEndpoint.unbind(NioEndpoint.java:482)
    at org.apache.tomcat.util.net.AbstractEndpoint.destroy(AbstractEndpoint.java:795)
    at org.apache.coyote.AbstractProtocol.destroy(AbstractProtocol.java:531)
    at org.apache.catalina.connector.Connector.destroyInternal(Connector.java:1023)
    at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:305)
    at org.apache.catalina.core.StandardService.destroyInternal(StandardService.java:588)
    at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:305)
    at org.apache.catalina.core.StandardServer.destroyInternal(StandardServer.java:850)
    at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:305)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:629)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:351)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485)
Run Code Online (Sandbox Code Playgroud)

Ste*_*n C 1

堆栈跟踪似乎表明 Tomcat 已经确定启动失败,并且在尝试关闭时发生了 NPE。

我预计真正的问题(即导致 Tomcat 放弃启动尝试的问题)位于日志文件的较早位置。


事实上 Tomcat 源代码证实了这一点:

protected void releaseCaches() {
    this.keyCache.clear();
    this.nioChannels.clear();
    this.processorCache.clear();
    if ( handler != null ) handler.recycle();
}
Run Code Online (Sandbox Code Playgroud)

这里的 NullPointerException 意味着keyCacheornioChannelsprocessorCacheis null。(我认为)只有在对象构造过程中出现问题时才会发生这种情况,NioEndPoint因为这三个字段是private final. 或者至少,它们是我看过的版本。