2011-10-28 6 views
0

私はアプリケーションサーバーとしてWebsphereを使用してサードパーティのJ2EEアプリケーションを実装しています。私はincludePageもJSPページで、応答が時に例外なくXML本体を持っていると予想される誰が私の例外を食べましたか? (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 
} 

(callingPage)のJSPの1に次のコードを持っています。特定のシナリオでは、includePageは有効な(カスタム)承認を投げています。しかし、コントロールはcallPageのブロックをキャッチするようにはなりません。

レスポンスを調べると、レスポンスコードに500という文字列の<HTTP ResponseCode><CustomExceptionType><CustomException.getMessage()>が含まれていることがわかりました。レスポンスボディはXML文字列ではないため、ダウンストリームの解析例外が発生します。

私はアプリケーションweb.xmlをチェックし、コード500に指定されたカスタムエラーページはありません。私はWebsphereの管理者と議論し、彼は多くの助けになることができませんでした。アプリケーションベンダーのサポートチームは、Websphereインスタンスでそれをテストし、動作することを確認します。それらによれば、それはWebsphere構成でなければなりません。

私のJ2EEフレームワークまたはWebsphereに関する知識は限られています。私は既存のクエリを検索しようとしましたが、考えられる原因を特定できませんでした。

答えて

0

通常、例外を処理するために、JSPにエラーページ指示文が含まれています。そのエラーJSPは、例外が発生した場合に制御が転送されるJSPです。あなたのケースではうまくいくかどうかは分かりませんが、試してみてください:http://www.roseindia.net/jsp/simple-jsp-example/exception-handling-in-jsp.shtml

私たちはそれが動作するかどうかわかります。あなたはおそらくすでにこれを解決してきたが、念のため

-NG

1

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

による含まサーブレットが応答ステータスコードを変更したり、ヘッダーを設定することはできません。変更しようとする試みはすべて無視されます。

あなたの例外が失われている理由は疑いがありますが(私はそれがわかりません)。

+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

関連する問題