Jasper in Jetty는 GetoutputStream에 불법 상태를 던지지 만 Tomcat에 대한 것은 아닙니다.

StackOverflow https://stackoverflow.com/questions/608352

  •  03-07-2019
  •  | 
  •  

문제

현재 Tomcat 5.5.25에서 실행중인 웹 응용 프로그램이 있습니다. JSP 및 UI 변경에 대한 빠른 새로 고침 시간을 활용하기 위해 Jetty 6에 포트를 입력하려고합니다.

내 JSP 파일은 JSP 2.0을 준수하기 때문에 Maven Jetty 플러그인 웹 사이트에서 제안 된 구성을 사용하여 Maven에서 Jetty를 실행하고 있습니다. 이 구성은 Apache의 Jasper JSP Compiler 버전 5.5.15를로드합니다. (Maven Respository에서도 구할 수있는 것은 5.5.23이지만 동일한 결과가 있습니다.)

Jetty에서 타일을 사용하여 구성된 내 홈페이지는 ServletResponseWrapperInclude.getOutputStream ()에서 불법 스테이트 렉스로 날려 버립니다. 분명히 Tomcat 아래에서는 이것을하지 않습니다.

나는 우리 타일에 관한 것이 무엇인지 이해하기 위해 고군분투하고 있으며, 재스퍼가 Tomcat이 아닌 부두에서 불평하게 할 것입니다.

도움이 되었습니까?

해결책

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

마스터 타일 JSP를 통해 빈 타일에 대한 참조를 제거 함으로써이 문제가 사라집니다.

다른 팁

와우 - 좋은 찾기! 내가 방금 발견 한 또 다른 해결책은 타일 포함을 빈/널 정의보다는 빈 문자열로 정의하는 것입니다.

다시 말해, 타일을 다음과 같이 정의했다면, 나는 당신이 설명하는 불법 스테이트 예식을 쳤다.

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

이상한 버그, 이상한 해결책이지만 나에게 효과적입니다!

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top