2011-12-02 2 views
2

Linux CentOS 5.7-64bit에서 Tomcat 5.5에서 실행되는 Apache FOP 1.0을 서블릿으로 작성했습니다.서블릿으로 Apache FOP가 이미지를 업데이트하지 않습니다.

이미지가있는 문서를 만들면이 문서는 정상적으로 렌더링됩니다. 그런 다음 이미지를 업데이트하고 다른 렌더링을 수행합니다. 렌더링 된 문서에는 여전히 이전 이미지가 있습니다. PDF가 처음부터 다시 작성되었음을 확인했지만 알 수없는 이유 때문에 이전 이미지가 계속 표시됩니다.

FOP를 독립 실행 형 프로그램으로 실행하면 이러한 일은 발생하지 않습니다. Tomcat의 캐시가 비활성화 된 것 같습니다.

어떻게 이런 일이 발생하고 나는 그것을 어떻게 해결할 수 있습니까?

답변

2

솔루션 :

FOP가 실행 사이에 이미지를 캐시 : Fop 1.0 documentation에서 다음과 같은 문장이있다. FopFactory 인스턴스 당 하나의 캐시가 있습니다. URI는 이미지를 식별하는 키로 사용되므로 특정 URI가 다시 나타날 때 이미지가 캐시에서 가져옵니다. 동일한 URI로 호출 할 때마다 다른 이미지를 생성하는 서블릿이있는 경우 캐싱을 피하기 위해 지속적으로 변경되는 더미 매개 변수를 URI에 사용해야합니다.

이미지 캐시가 재 설계된 코드에서 상당히 향상되었습니다. 따라서 이미지 캐시를 재설정하는 것은 과거의 일입니다. OutOfMemoryErrors가 여전히 발생하는 경우 알려 주시기 바랍니다. fopFactory.getImageManager().getCache().clearCache();

내가 서블릿의 코드에 명령을 추가 한, 그리고 문제가 사라진 것 같습니다 :

다른 모든 실패하면, 이미지 캐시는 다음과 같이 해제 할 수 있습니다.

관련 문제