2. 컴퓨터 이야기/프로그래밍

자바 애플릿 Applet 로 구동되는 프로그램인 .class 파일의 위치

래빗 크리스 2009. 5. 28. 13:29

자바 애플릿 .class 파일의 서버 상의 위치가 어디에 있어야 할까..?

만약 /applet/Applet.html 파일에서 com.java.applet.class 파일을 호출한다면
어플리케이션 서버의 .../webapps/WEB-INF/com/java/applet.class 에 위치해야 할까..?
아니면, 웹 서버의 .../docs/applet/com/java/applet.class 에 위치해야 할까..?

.jsp 는 웹 서버가 해당 코드를 가지고 있지 않다.
어플리케이션 서버의 서블릿 엔진이 .jsp 를 컴파일 하고 .class 로 만들어 두었다가..
웹 서버에서 해당 jsp 를 호출하면 웹 서버는 어플리케이션 서버에 해당 파일의 정보를 요청하고,
어플리케이션 서버의 서블릿 엔진이 미리 만들어둔 .class 에 준하여 HTML 코드를 웹 서버에게 돌려주고,
웹 서버가 건네받은 HTML 코드가 사용자의 PC 로 전달되면,
사용자 PC 의 웹브라우저가 HTML 코드를 해석하여 모니터에 뿌려준다.
그러므로, .jsp 에서 호출하는 .class 는 .../webapps/WEB-INF/ 아래에 패키지 경로에 근거하여 존재해야 한다.

그런데, 애플릿의 경우는 조금 다르다.
.html 이 애플릿을 호출하지만,
어플리케이션 서버에서 .class 를 찾는 것이 아니라 웹 서버에서 .class 파일을 찾아 이를 구동한다.
그것도, .class 파일을 구동하는 .html 이 존재하는 디렉토리를 기준으로 .class 의 패키지 경로에 근거하여 파일을 찾는다.
따라서, 맨 처음에 나왔던 질문의 정답은, .../docs/applet/com/java/applet.class 라는 것이다.

지식이 짧아서 더 자세한 내용은 모르겠고..

아무튼, WAS 가 아니라 AS 와 WS, 그리고 DB 로 나뉜 3-tier 환경에서,
애플릿이 구동하는 .class 파일의 위치는 AS 가 아니라 WS 에서 찾는 것이 정답이다.