2020年4月7日 星期二

Program - 檔案下載遇到java.lang.IllegalStateException

既然卡了一陣子,那就做個筆記吧~😅



【資料處理流程】
畫面顯示超連結
點選超連結
會去server端取得檔案
取得到檔案後再下載到client端


【實際執行】
檔案有正確下載,但是console有出現錯誤訊息!
「java.lang.IllegalStateException: getOutputStream() has already been called for this response」


【原則】
Servlet規範說明,不能既呼叫response.getOutputStream(),又呼叫response.getWriter()
無論先呼叫哪一個,在呼叫第二個時候就會丟擲IllegalStateException

【白話文】
因為後端接使用response.getOutputStream()下載檔案,
下載檔案的方法有返回值(非VOID),導致後端回傳前端時,執行response.getWriter而影響到了,
所以把執行的function修改為無返回值(VOID)💪💪

沒有留言:

張貼留言