启动tomcat时出现nullpointer异常

时间:2014-12-08 11:33:39

标签: java eclipse tomcat

我的tomcat服务器没有在eclipse中启动,之前工作正常,但现在它显示以下异常。 虽然它在日食之外工作得很好。但每当我尝试启动服务器时,会发生以下异常并显示message =  "在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)

2 个答案:

答案 0 :(得分:1)

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

我希望真正的问题(即导致Tomcat放弃启动尝试的问题)在日志文件中更早。


确实,Tomcat源代码证实了这一点:

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

此处的NullPointerException意味着keyCachenioChannelsprocessorCachenull。 (我认为)只有在构造NioEndPoint对象期间出现问题时才会发生这种情况,因为这三个字段是private final。或者至少,它们属于我看过的版本。

答案 1 :(得分:1)

这件事发生在我身上,原因是我错误配置了我的Tomcat服务器。删除它并创建新的服务器条目有帮助。