2009-03-03 7 views
3

Tomcat 5.5.25で現在実行されているWebアプリケーションがあります。私はJetty 6に移植し、jspやUIの変更のための高速リフレッシュ時間を利用しようとしています。JettyのJasperはgetOutputStreamでIllegalStateExceptionをスローしますが、Tomcatでは返しません

私のJSPファイルはJSP 2.0に準拠しているため、maven jettyプラグインWebサイトで提案されている設定を使用してmavenでjettyを実行しています。この設定は、Apacheのjasper JSPコンパイラバージョン5.5.15を読み込みます。 (Mavenレポジトリでも5.5.23が使用できますが、同じ結果が得られます)

タイルを使用して設定されている私のホームページは、ServletResponseWrapperInclude.getOutputStream()でIllegalStateExceptionで爆発します。 Tomcatの下では明らかにこれをしません。

私たちのタイルが何であるかを理解するのは苦労しています。ジャスパーがトムキャットではなく桟橋で不平を言う原因になります。

+0

stacktraceに追加のエラーメッセージはありますか? – toolkit

+0

ツールキット++完全なスタックトレースを含めてください – cherouvim

答えて

1

これはあまりお答えできないかもしれませんが、タイルに空のタイルが含まれている場合にこのエラーが発生することがわかりました。

マスタータイルJSPを参照し、空のタイルへの参照を削除することで、この問題は解決します。

+0

この回答は受け入れられていますので、受け入れられた回答が含まれていないため、このトピックは毎回ポークされません。 – BalusC

0

うわー - いい発見!私が直面したもう一つの解決策は、タイルインクルードを空の/ヌル定義ではなく空の文字列として定義することです。言い換えれば

次のように私はタイルを定義した場合、私はあなたが記述IllegalStateExceptionがヒット:

<definition name="login" extends="main.layout"> 
    <put name="title" value="Login" type="definition" /> 
    <put name="headinclude" value="" type="definition" /> 
    <put name="body" value="/WEB-INF/tiles/login.jsp" type="page" /> 
</definition> 

次のように私は、他の一方で、タイルを定義した場合、例外が消える:

<definition name="login" extends="main.layout"> 
    <put name="title" value="Login" type="definition" /> 
    <put name="headinclude" value="" type="string" /> 
    <put name="body" value="/WEB-INF/tiles/login.jsp" type="page" /> 
</definition> 

奇妙なバグ、奇妙な解決策、それは私のために働く!