發表文章

目前顯示的是 9月, 2011的文章

天殺的 [Cannot forward after response has been committed] @ tomcat

這件鳥事, 無論如何一定要 memo 起來, 看能不能像另外一篇 : 當 Norton Ghost 2003 遇上 SATA HD  一樣, 加減解救一些人 ... 事情是這樣地 : 最近一個非常小非常簡單的案子, 簡單到只有 3 頁, 我們一樣用 jsp / servlet @ tomcat 實作 本來一些其它的問題都解決了, 眼看著就要上線, 驗收, 結案了 偏偏客戶來個小小的壓力測試, 就發生了靈異現象, 前一頁 submit 之後, 下一頁沒有 show 出來, 整頁就是白白的 而 tomcat 的 stderr 出現了這個 exception : java.lang.IllegalStateException: Cannot forward after response has been committed 翻譯成白話文就是 : 當 servlet 想要用 javax.servlet.RequestDispatcher.forward() 到結果頁的 jsp 時, 發現 response 早就結束掉了 @___@ 這是什麻鬼呀, 不是大家都這樣寫的嗎 ... 因為在家裡並沒有看過這個錯誤 (this case), 一開始一直懷疑是不是 resource 不足導致 so, 請人家加了 cpu, 也加大了 jvm 的 heap size ~~ 還是沒改善 @_____@ source review 了一遍又一遍 ... 重點是 ~ 程式怎麻看就是那兩三支而已, 實在是變不出什其它花樣 正當已經走投無路, 完全找不到頭緒的時候 忽然間, 隔壁的同事說要幫我再問問 google 大神 (不知道是不是前一天晚上有跟上帝禱告說 ~ 請它幫個忙之類的緣故) 我給了它一個我正在懷疑的 keyword 結果它回了我一個八杆子打不著的網頁 :  A bug in tomcat or Java2D 不過認真的看完之後, 發現它說的是 tomcat 在 servlet 操作 OutputStream 跟 ImageIO 時 有個小 bug 會引起上述 exception, 那 ~~~ 跟我們這 case 有關嗎 ?? 我們有用到這什麻 ImageIO 嗎 ?? 突然我想到我們有一個圖形驗證碼的功能 ~~ 再加