웹 서버에서 자바 프로그램을 실행시키는데 있어서 두 가지 문제점이 있다:
커멘드 라인상에서 자바 런타임 인터프리터를 실행하고 (프로그램이 실행될 수 있도록) 초기화 클래스가 있어야 한다. HTML 형태로는 커멘드 라인을 웹 서버에 보낼 수 없다.
자바 프로그램이 필요로 하는 개개의 환경변수는 정확이 넘겨져야(pass) 한다.
C 에서의
getenv()
함수 같은 메소드는 없다.
위의 장애물을 처리하기 위해, 자바 인터프리터에게 필요한 정보를 제공하는 쉘 CGI프로그램을 작성하였다.
이 쉘 스크립트는 사용하고자 하는 Java CGI프로그램과 HTTP데몬 사이의
상호작용(interaction)을 관리한다. 이 스크립트는 실행하고자 하는 프로그램의 이름을 서버가
제공하는 데이타로부터 뽑아내며 임의의 임시 파일 안에 환경 데이타(environment data) 모두를 모은다.
그리고나서 커멘드 라인에 덧붙여진 환경 정보 파일의 이름과 프로그램 이름을
가지고 자바 런타임 인터프리터를 실행시킨다.
java.cgi
스크립트는
지역 경로에 관한 방침을 정하라
에서 구성되었으며 인스톨되었다.
Java CGI 프로그램을 사용하는 필자의 폼은 다음과 같이 form action을 명시한다:
<form action="/cgi-bin/java.cgi/CGI_Test" method="POST">여기서
/cgi-bin/
은 여러분의 CGI 바이너리 디렉토리이며, java.cgi
는 웹상에서 Java
프로그램을 실행시키게 해주는 자바 front-end 이며, CGI_Test
는 실행시킬 자바
프로그램 이름의 예이다.