JSP 클래스 파일 생성
런타임 시, WebSphere® Application Server JSP(JavaServer Pages) 엔진은 WebSphere Application Server temp 디렉토리 또는 웹 모듈의 WEB-INF/classes 디렉토리에서 JSP 클래스 파일을 로드합니다. JSP 엔진은 먼저 temp 디렉토리에서 클래스 파일을 검색한 다음 웹 모듈의 WEB-INF/classes 디렉토리에서 검색합니다.
기본 설치에서 WebSphere Application Server temp 디렉토리는 일반적으로 profile_root/temp입니다. 그림 1은 런타임 시 JSP 엔진의 처리 로직을 표시합니다.
서버를 중지하기 위해 CANCEL appserver_proc_name 명령을 사용하면 안됩니다. 서버가 완전히 중지될 때마다 이 temp
디렉토리가 제거됩니다. 그러나 서버가 자주 정상적으로 중지되지 않는
경우(서버를 중지하지 않고 취소하는 경우에 발생함), 이 디렉토리는 제거되지 않으며,
temp 디렉토리에 사용된 HFS가 결국 가득 차게 됩니다. 애플리케이션을 설치할 때
JSP 파일을 사전 컴파일하는 경우 또는 JspBatchCompiler 기능을 사용하여 호출되기 전에 사전 컴파일하는 경우, 이 스토리지 문제를 차단할 수도 있습니다.
JSP가 런타임 시 컴파일되면 생성된 동일한 클래스가 각 하위(servant) 임시 디렉토리에 배치됩니다.
서버나 하위가 다시 시작되면 이 클래스가 삭제되며,
충분하지 않아 늘어난 디스크 공간 사용으로 컴파일된 동일 클래스의 각 사본을 보유하게 됩니다. 하위나 서버가
어떠한 이유로 실패하면 컴파일된 이 클래스는 자동으로 정리되지 않습니다. 또한 각 하위가 다시 시작되면 삭제된 JSP 클래스를 다시 컴파일해야 합니다.
위의 비효율성 문제는 정정되었습니다.
런타임 시 JSP가 컴파일되면, JSP 컨테이너는 서버나 하위가 다시 시작된 후 지속되는 공통 서버 임시 디렉토리로 컴파일된 클래스를 생성합니다.
일괄처리 컴파일러는 일괄처리 컴파일러 대상의 유형에 따라서 WebSphere Application Server temp 디렉토리 및 웹 모듈의 WEB-INF/classes 디렉토리 모두에서 클래스 파일의 생성을 지원합니다. 또한 일괄처리 컴파일러를 사용하면 대상 애플리케이션 외부에 있는 파일 시스템의 디렉토리에 클래스 파일을 생성할 수 있습니다. 웹 모듈의 WEB-INF/classes 디렉토리로 클래스 파일을 생성하면 자체 포함 WAR 파일 또는 EAR(Enterprise archive) 파일 내 WAR 파일로 웹 모듈을 배치할 수 있습니다. 다음 테이블은 클래스 파일을 컴파일할 때 일괄처리 컴파일러의 동작을 표시합니다.
ear.path 또는 war.path가 제공됨 | enterpriseApp.name이 제공됨 | |
---|---|---|
compileToDir은 제공되지 않습니다. compileToWebInf가 제공되지 않거나 true입니다. | 클래스 파일은 웹 모듈의 WEB-INF/classes 디렉토리로 컴파일됩니다. | 클래스 파일은 웹 모듈의 WEB-INF/classes 디렉토리로 컴파일됩니다. |
compileToDir은 제공되지 않습니다. compileToWebInf는 false입니다. | 클래스 파일은 웹 모듈의 WEB-INF/classes 디렉토리로 컴파일됩니다. | 클래스 파일은 WebSphere Application Server temp 디렉토리, 보통 profile_root/temp로 컴파일됩니다. |
compileToDir이 제공됩니다. compileToWebInf가 제공되지 않거나 true 또는 false입니다. | 클래스 파일은 compileToDir로 표시된 디렉토리로 컴파일됩니다. | 클래스 파일은 compileToDir로 표시된 디렉토리로 컴파일됩니다. |