2011-10-18 5 views
0

요청시 데이터를 잘라내어 이미지를 생성하는 java 서블릿이 있습니다. 잠재적으로 수백만 개의 이미지가있을 수 있으며 제작 된 후에는 다시 렌더링 할 필요가 없으므로 캐시를 사용하고 렌더링 단계를 피하고 싶습니다. 상당히 지루합니다.Java Web Server에서 외부 파일 링크하기

캐싱은 정상적으로 작동하지만 웹 응용 프로그램을 배포 할 때 이러한 렌더링 된 이미지가 필요합니다. 즉, 문서베이스에 쓸 수 없거나 재배포시 파괴 될 수 있습니다.

필자가 해왔 던 것은 웹 응용 프로그램을 war 파일로 배포 할 때 컨텍스트의 'allowLinking'속성을 사용하는 것입니다 (컨텍스트는 META-INF/context.xml에 있음). 이것은 응용 프로그램이 배포 취소되기 전에 심볼릭 링크를 끊어야하기 때문에 다소 지루한 작업입니다. 그렇지 않으면 링크의 이미지가 파괴되지만 작동하는 것처럼 보입니다.

그러나 이것은 Tomcat에서만 작동하며 JBoss (5.1)로 테스트 할 때 심볼 링크를 따르지 않는 것으로 보이며 문서베이스 외부의 아무 것도 연결할 수 없습니다. 모든 자바 웹 서버에서 작동하는 좀 더 실용적인 방법이 필요하다고 생각합니다. 내가 뭘 놓치고 있니?

답변

2

외부 디렉토리의 이미지를 제공하는 서블릿을 구성 할 수 있습니다. 이 서블릿은 요청에서 이미지 파일 이름이나 ID를 추출하고, 외부 디렉토리에서 파일을 읽고 서블릿 응답의 출력 스트림 (적절한 컨텐트 유형을 응답에 설정 함)에 바이트를 쓰면됩니다.

또는 일부 외부 디렉토리의 정적 이미지를 제공하는 Apache httpd 서버 프런트 엔드를 추가하고 다른 URL의 서블릿 컨테이너에 위임 할 수 있습니다.

+0

감사합니다. 처음에는 기본 서블릿을 다시 작성하는 것이 좋습니다. 캐시에서 제공하거나 필요에 따라 렌더링 할 때 동일한 URL이 필요하기 때문에 두 번째는 까다 롭습니다. 내가 더 나은 해결책을 찾지 못하면 당신의 대답을 받아 들일만한 대답으로 표시 할 것입니다. – rjcarr

+0

나는 당신의 제안을 "외부 디렉토리의 이미지를 제공하는 서블릿을 구성 할 수 있습니다."라고 말했고 나는 이것을 내 솔루션에 사용하고 있습니다. 제안에 감사 드리며 링크를 다루는 것보다 훨씬 낫습니다! – rjcarr

관련 문제