Sitemesh 2.4.1 버전은 기존의 PageFilter가 SitemeshFilter로 바뀌었다.

이번 버전에서는 아래와 같은 에러가 데코레이션 되는 URL에서는 발생하지 않지만 데코레이션 되지 않는 URL에서는 여전히 발생한다.

ProtocolException : Didn't meet stated Content-Length

Sitemesh 이전 버전에서의 해결방법은 http://finkle.tistory.com/56 게시글 참조

Sitemesh 2.4.1 버전에서 해결방법은 아래와 같다.
com.opensymphony.sitemesh.webapp.decorator.NoDecorator 클래스를 아래와 같이 수정한다.

if (Container.get() != Container.WEBLOGIC) {
    response.setContentLength(content.originalLength());
}

또 하나, 보통 SpringMVC 3.0에서 Annotation을 통해 JSTL View를 지정하여 화면을 렌더링 하는데 Sitemesh 데코레이션 파일에 설정된 URL을 Weblogic에서는 제대로 인식하지 못한다.

아래 설정정보는 Tomcat에서 잘 작동하는 데코레이션 설정인데 Weblogic에서는 데코레이션 되지 않는다.

decoration.xml

<decorator name="xxxx_manage" page="xxxx/common/decorator/xxxx_manage.jsp">
    <pattern>/manage/**/xxxx_*.do</pattern>
</decorator>

해결방법은 아래와 같다.

<decorator name="xxxx_manage" page="manage/common/decorator/xxxx_manage.jsp">
    <pattern>/manage/**/xxxx_*.do</pattern>
    <pattern>/WEB-INF/view/manage/**/xxxx_*</pattern> <!-- For weblogic -->
</decorator>


+ Recent posts