2009-03-03 1 views
3

Tomcat 5.5.25에서 현재 실행중인 웹 응용 프로그램이 있습니다. 특히 jsp와 UI 변경에 대한 빠른 새로 고침 시간을 이용하기 위해 Jetty 6으로 이식하려고합니다.Jetty의 Jasper가 getOutputStream에서 getOutputStream에 IllegalStateException을 발생 시키지만 Tomcat에서는 그렇지 않습니다.

내 JSP 파일은 JSP 2.0과 호환되므로 메이븐 부티 플러그인 웹 사이트에 제안 된 구성을 사용하여 maven에서 부두를 실행합니다. 이 설정은 아파치의 jasper JSP 컴파일러 버전 5.5.15를로드합니다. (Maven 저장소에서도 5.5.23을 사용할 수 있지만 결과는 같습니다.)

부두에서는 타일을 사용하여 구성된 내 홈 페이지가 ServletResponseWrapperInclude.getOutputStream()에서 IllegalStateException으로 폭발합니다. 분명히 Tomcat에서는이 작업을 수행하지 않습니다.

저는 타일에 대해 무엇인지 이해하기 위해 고심하고 있습니다. 벽걸이 용 벽옥에 대해 벽옥에 불만을 제기하고 Tomcat에는 불만을 제기하게됩니다.

+0

stacktrace에 추가 오류 메시지가 있습니까? – toolkit

+0

툴킷 ++ 전체 스택 트레이스를 포함하십시오 – cherouvim

답변

1

이것은별로 도움이되지 않을 수도 있지만 타일에 빈 타일이 포함되어있을 때이 오류가 발생한다는 것을 발견했습니다.

마스터 타일 JSP를 살펴보고 빈 타일에 대한 참조를 제거하면이 문제를 해결할 수 있습니다.

+0

허용 대답을 포함하지 않았기 때문에 매번이 주제가 쌓이지는 않습니다. – BalusC

0

와우 - 멋진 찾기! 방금 발견 한 또 다른 해결책은 빈/널 정의가 아닌 빈 문자열로 타일 포함을 정의하는 것입니다. 다음과 같이 내가, 다른 한편으로는, 타일을 정의하는 경우, 예외가 사라질

<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> 

: 다음과 같이 내가 타일을 정의하는 경우 즉

는, 당신이 설명하는 IllegalStateException이 충돌

<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> 

괴괴 망측 한 버그, 이상한 해결책, 그러나 그것은 나를 위해 일합니다!