我目前正在使用Jersey/Tomcat開發一個REST Web服務(但歡迎使用通用的Servlet/Container答案)。 如果客戶端對從MySQL連接返回大量數據的服務執行一些GET請求。處理servlet中意外的請求結束
爲了避免任何OOM異常,我使用MySQL的流模式。
但是,如果客戶端在加載期間中止請求,那麼MySQL連接未關閉。 之後,服務器將不會處理任何其他請求,因爲一次只能有一個「流式傳輸」請求。
所以問題是:我的服務器上的請求何時結束(通常或異常),我該如何得到通知。我可以註冊某種聽衆嗎?或者使用UncaughtExceptionHandler?
我已經看到很多關於處理Jersey中的異常以將它們轉換爲「響應」的事情,但沒有處理請求的過早結束。我猜Jersey或Tomcat可能會在不通知的情況下摧毀我的線程。我可以在我的方法的關鍵部分捕獲一些異常,以便在線程中斷髮生時知道嗎?
預先感謝您的幫助,
拉斐爾
沒有必要關閉輸出流 - servlet將爲你做它。另外,如果您使用PrintWriter,則使用checkError而不是flush。 – 2013-09-06 10:31:30
@andrew:http://stackoverflow.com/questions/1829784/should-i-close-the-servlet-outputstream/1829823#1829823 – BalusC 2013-09-06 11:02:35