자바/J2EE
Sitemesh 2.4.1 + Weblogic 9.2 삽질기
finkle
2010. 2. 5. 22:58
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 버전에서 해결방법은 아래와 같다.
또 하나, 보통 SpringMVC 3.0에서 Annotation을 통해 JSTL View를 지정하여 화면을 렌더링 하는데 Sitemesh 데코레이션 파일에 설정된 URL을 Weblogic에서는 제대로 인식하지 못한다.
아래 설정정보는 Tomcat에서 잘 작동하는 데코레이션 설정인데 Weblogic에서는 데코레이션 되지 않는다.
해결방법은 아래와 같다.
이번 버전에서는 아래와 같은 에러가 데코레이션 되는 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());
}
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="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>
<pattern>/manage/**/xxxx_*.do</pattern>
<pattern>/WEB-INF/view/manage/**/xxxx_*</pattern> <!-- For weblogic -->
</decorator>