我正在開發Java Servlet以在Tomcat中運行。我目前正在Windows XP機器上使用XAMPP軟件包(包括Tomcat 7)對其進行測試(不要擔心,我不打算在生產中使用它)。我這樣做是因爲我需要保持連接打開,所以我可以使用Comet服務器推送通信(服務器推送這是必須具備的要求)。如何診斷Tomcat中的空指針異常
該servlet正在運行,並且我寫了一個測試客戶端,它顯示客戶端和服務器正在完美通信。客戶端通過互聯網從服務器上訪問服務器,HTTP頭在servlet中生成BEGIN事件,然後通過READ事件進行通信。
然後,我嘗試一個「真正的」客戶端,這對我們來說是一個專有設備,我沒有完全控制。很難獲得關於它在做什麼的許多信息,更糟糕的是,其他程序員將來可能會對其進行更改。充其量,我所能做的就是對未來的變化提出建議。
的設備使得與頭中的HTTP請求時,服務器處理開始事件,但後來,當設備試圖繼續交談,則連接斷開,我得到我的卡塔利娜日誌文件中的以下內容:
2011年10月12日下午5點59分00秒org.apache.coyote.http11.Http11NioProcessor過程 嚴重:錯誤處理請求 顯示java.lang.NullPointerException 在org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java :436) at org.apache.coyote.http11.Http11NioProcessor.process(Http11NioProcessor.java:317) at org.apache.coyote.AbstractProtocol $ AbstractConnectionHandler.proces (java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110))在org.apache.tomcat.util.net.NioEndpoint $ SocketProcessor.run(NioEndpoint.java:1544) 在java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:603) 在java.lang.Thread.run(Thread.java:722)
我知道這是很難用這有限的診斷信息,這正是我的問題。如何獲得有關Tomcat發生的更多信息?此外,我能做些什麼來保護/告知/幫助未來的設備程序員製造相同的錯誤(無論發生什麼)?顯然,問題在於嚴重,那麼我是否面臨黑客利用故意破壞我的服務器的危險?
任何及時的答覆和任何建議都會贏得我永恆的感激。
剛剛更新 - 我不知道爲什麼,但問題就走了,當我們刪除所有回車和換行從最初的頭之後的通信源。
感謝您的幫助。 StackOverflow規則!
我發現至少2個相關的錯誤信息:https://issues.apache.org/bugzilla/show_bug.cgi?id=51120和https://issues.apache.org/bugzilla/show_bug.cgi?id=52009 。 – BalusC
非常感謝。在我的頭靠在牆上呆了一整天,並搜索了幾個小時後,你發現我不能。不知道爲什麼我沒有自己找到這些網頁。 – DaveWalley