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>


Tomcat에서 정상 동작하던 것이 Weblogic 전환 시 문제가 발생한다.

Weblogic은 ....
1. include 되는 녀석의 contentType 중복을 허용하지 않음

버전 8,1의 경우에는 ....
2. JSTL 1.0만 지원함
[1.1 버젼] : <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
[1.0 버젼] : <%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>


3. Sevlet 2.3만 지원함 (Sevlet 2.4 -> http://www.okjsp.pe.kr/seq/30536)
[2.4 버젼] : <!DOCTYPE web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
[2.3 버젼] : <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">

Sitemesh와 통합했을 경우에는 ....
4. Didn't meet stated Content-Length 에러 발생
: response.setContentLength의 크기가 Sitemesh에 의해 변하는 것을 Weblogic은 허용하지 않고 에러를 발생시킨다.

com.opensymphony.module.sitemesh.filter.PageFilter 클래스 아래와 같이 변경함
    if (Container.get() != Container.WEBLOGIC) {
        response.setContentLength(page.getContentLength());
    }

※ 아울러 한글 Window OS에서 UTF-8 인코딩 설정 시 한글 문제 아직 미해결 함 (이것 역시 Sitemesh와의 문제인 듯 ....)

+ Recent posts