2011-10-28 20 views
0

我正在使用Websphere作爲Application Server實現第三方J2EE應用程序。我在JSP頁面(callingPage)之一下面的代碼誰吃我的例外? (jsp dispatcher.include)

try { 
    RequestDispatcher dispatcher = request.getRequestDispatcher(includePage); 
    dispatcher.include(request,response); 
} catch (Exception Ex) { 
    // process the excpetion 
    // and create appropriate response object with body as XML string 
} 

的includePage也是一個JSP頁面和響應,預計將有XML身體的時候也不例外。在一個特定的場景中,includePage會拋出一個有效的(自定義)附加。但是控件不會在callingPage中捕獲塊。

在檢查響應時,我發現響應正文包含一個字符串<HTTP ResponseCode><CustomExceptionType><CustomException.getMessage()>,響應代碼爲500.由於響應正文不是XML字符串,因此我們得到解析異常下游。

我檢查了應用程序web.xml,並沒有爲代碼500指定自定義錯誤頁面。我與Websphere管理員討論過,他沒有太多幫助(他聲稱他沒有做任何特定的實例)。應用程序供應商的支持團隊在他們的Websphere實例中對其進行了測試,並確認其可行。據他們說,它應該是一個Websphere配置。

我對J2EE框架或Websphere的瞭解有限。我試圖搜索現有的查詢,但無法弄清楚可能的原因。

回答

1

你可能已經解決了這個已經,但以防萬一:

根據http://docs.oracle.com/javaee/6/api/javax/servlet/RequestDispatcher.html

所包含的servlet不能改變響應狀態代碼或設置頭;任何嘗試進行更改都將被忽略。

我懷疑(但我不確定),這就是爲什麼你的例外正在失去。

+0

該問題已通過爲Websphere設置自定義屬性容器com.ibm.ws.webcontainer.dispatcherRethrowSER並將其設置爲false來解決。詳情請點擊http://pic.dhe.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=%2Fcom.ibm.websphere.express.doc%2Finfo%2Fexp%2Fae%2Frweb_custom_props.html – Max