2010-03-24 101 views
2

我正在使用JSP,Struts 1.3和Apache Tomcat 5.5。 由於某些原因,JSP的響應被截斷,並且不顯示完整的信息。 從問題JSP頁面生成的類看起來很好。 Catalina的日誌中沒有記錄任何錯誤。 我不知道如何解決這個問題。瀏覽器顯示不完整的JSP數據

更新:我確定我正在尋找錯誤的正確日誌($ CATALINA_HOME/logs)。此外,我正在寫一些日誌消息到自定義日誌文件。他們兩人都沒有提到這個錯誤。錯誤只發生在一個特定的頁面中,並且內容在同一個地方被截斷。如果我幾次打印相同的實體頁面輸出看起來很完美。如果我在這個位置之前刪除了一些輸出,那麼切割的邊界將被移位:內存分配問題頁面緩衝區大小不會影響頁面輸出,我已檢查過。在這個頁面中,我使用了include指令,並且我遇到了一些信息,如果生成的servlet的大小超過64 KB,那麼JSP編譯可能會失敗。 Servlet生成得很好,我卡住了。

+0

您是否真的在正確的位置查找錯誤的正確日誌?沒有它,它在黑暗中拍攝。此外,瞭解這是否突然發生以及是否僅發生在所有或特定頁面上會很有用。另外,那些使用舊式和errorprone * scriptlets *的頁面還是不是? – BalusC 2010-03-24 20:24:05

+0

發佈JSP代碼 - 這可能會發生很多原因。此外,您的某個日誌中有一個例外,您只是沒有找到它。 – stevedbrown 2010-03-25 21:30:11

+0

這裏''%@ page buffer =「none」%>'幫助解決了這個問題。 – koppor 2013-02-26 20:23:49

回答

0

根據您的更新:

如果我刪除了一些輸出之前這個地方切斷邊界轉移

它看起來像出事關閉的OutputStream時出錯。如果沒有一些過濾器用一個自定義的實現代替HttpServletResponse,而我又會檢查整個過濾器鏈,而這個自定義的實現又很難實現。它不會將close()方法正確委派給「原始」輸出流/寫入器。嘗試禁用過濾器並重新測試它。也可以嘗試以下行添加到JSP的底部,看它是否解決了這個問題:

<% response.getWriter().flush(); %> 
0

我有類似的問題在哪裏,則僅顯示JSP文件的一部分(下載)在瀏覽器(調試器/頁面源)。令人擔憂的是,這並不總是發生。

我發現有一個NullPointerException因連接超時而被拋出,最終導致服務器僅發送一部分JSP。

因此,正如其他人評論中所建議的那樣,請妥善查看日誌。

相關問題