2016-09-19 182 views
1

使用Tomcat服務器8.5.4作爲獨立服務(tomcat8w.exe),我在'logs/tomcat8-stderr.YYYY- MM-DD.txt」當我停止服務器:

org.apache.coyote.AbstractProtocol$ConnectionHandler.process Error reading request, ignored 
java.lang.NullPointerException 
at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.getSslSupport(NioEndpoint.java:1349) 
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:775) 
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1425) 
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) 
at org.apache.tomcat.util.net.AbstractEndpoint.processSocket(AbstractEndpoint.java:830) 
at org.apache.tomcat.util.net.NioEndpoint$Poller.add(NioEndpoint.java:669) 
at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.registerReadInterest(NioEndpoint.java:1264) 
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1433) 
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
at java.lang.Thread.run(Thread.java:745) 

我的連接器如下:

​​

你有什麼可能是錯誤的,任何解釋?

回答

1

經過一番研究,我發現用'org.apache.coyote.http11.Http11Nio2Protocol'取代'org.apache.coyote.http11.Http11NioProtocol'變成了工作。 我解決了我的問題,但仍然歡迎任何評論/建議或解決方案。

0

首先,我很抱歉在這裏寫這個,而不是在評論中,但我仍然沒有足夠的評論聲望。

我不是Tomcat配置方面的專家,但我可以告訴我這個同樣的錯誤發生在我身上,它是由我所使用的端口號引起的,據我所知。

我在連接器中配置了端口20443以及協議Http11Nio,導致了這裏描述的相同問題。只要我將端口更改爲8443並重新啓動tomcat,它就可以正常工作。而當使用端口20443時,如果我更改爲使用協議Http11Nio2,它可以工作(如Etienne所述)。

因此,這看起來與協議Http11Nio的範圍端口有關。我正在使用密鑰庫PKCS12,但經過多次測試後,沒有任何一點與密鑰庫有關。

這並不能解釋根本原因,但隨着研究縮小到更具體的領域。

我創造了進一步的審查,Bugzilla的bug報告:https://bz.apache.org/bugzilla/show_bug.cgi?id=61089

我希望這有助於。

+0

Apache團隊回覆我的bugzilla報告並將其標記爲錯誤[60030](https://bz.apache.org/bugzilla/show_bug.cgi?id=60030)的副本,解釋是一個錯誤對於Apache Tomcat版本8.0.x,它已在8.5.5及以上版本中解決。該問題與服務器名稱指示(SNI)的支持有關。 馬克托馬斯與Apache團隊的決議引述如下:「這已在下列分支中得到修復: - 9.0.x 9.0.0.M10以上 - 8.5.x 8.5.5以上 8.0.x及更早版本不受影響,因爲它們不支持SNI。「 – hesparza