- JEUS 4.x 개발가이드 | |||||||||||||||||||
개발자 가이드 – JEUS4 2008/01/28 1.1 WEB application 추가 방법 일반적으로 WEB application은 context단위(독립적인 web application, 배포 시에는 WAR형태를 가지게 됨)로 개발을 하게 된다. 이러한 context는 servlet engine에서 운영되며 다른 context와는 배타적으로 운영되게 된다. 하나의 context는 아래와 같은 디렉토리 구조를 가지게 된다. 윗 그림에서 보듯이 모든 context의 최상위 디렉토리는 root(/)로 가정하여 개발하게 된다. 이러한 root는 운영을 위해 WAS에 배포될 때 이러한 root는 context path에 mapping이 되어 동작을 하게 된다. 예를 들어 개발자가 인사업무를 위한 context를 하나 만들었다면 이 context가 web상에서 동작을 하기 위해서는 http://localhost:8088/insa/와 같이 mapping을 했다면, 이 경우 /insa가 인사업무 context를 위한 URI로 할당이 되었다. 이 때 /insa를 context path라고 한다. 위 그림에서 WEB-INF디렉토리에는 web.xml파일이 존재하게 되는데 이 파일은 context에 대한 전체 설정을 가지게 되는 파일이 된다. Classes디렉토리는 이 context에서 사용하는 class들(servlet 혹은 bean, helper classes들)이 들어가게 되고, lib디렉토리는 context에서 사용하는 library들이 jar나 zip의 형태로 들어가게 된다. Src디렉토리는 일반적으로 개발자들의 소스가 들어가게 되는데 이 디렉토리는 개발을 위한 것이므로 실제 context와는 아무런 상관이 없다. 위와 같이 구성된 디렉토리를 JAVA의 JAR유틸리티를 이용해 묶어서 war로 확장자를 바꾼 것이 배포를 위한 WAR파일이다. 이렇게 개발된 WAR파일을 JEUS에서 배포하기 위해서는 다음과 같은 과정을 거치게 된다.
1) DD파일의 생성 DD(Deployment Descriptor)파일은 개발자가 만든 context가 실제 JEUS위에 동작하기 위해서는 몇 가지 설정이 더 필요하게 되는데 그러한 설정을 가진 파일을 의미한다. 예를 들어 context path와 reload가능 여부 등과 같은 설정이 들어가게 된다. 아래는 설정 예제 파일이다.
위의 내용을 보면 지금 deplopy하고자 하는 context의 이름은 sample이며 이 context는 URI가 /sample과 같이 호출될 경우(context-path)에 동작을 하게 된다. Docbase이는 deploy시 JEUS가 실제 위치를 시킬 디렉토리를 의미한다(일반적으로 context-name과 같이 주면 무리가 없다). Auto-reload는 class가 변경이 될 경우 reloading할 지의 여부를 결정하는 부분이다. 위와 같이 만들어진 DD파일의 이름은 JEUS의 naming rule에 따라 jeus-web-dd_sample.xml의 이름을 가져야 한다. Jeus-web-dd_는 prefix이고 다음 부분은 context의 이름이 된다. 여기까지 준비 되었다면 deploy를 하기 위한 준비가 완료된 것이다.
2) WEB tool을 이용한 deploy WEB tool을 구동한 후 아래 그림과 같이 deployment에서 servlet을 선택한 후 오른쪽에 나타나는 화면에서 필요한 정보들을 입력한 후 deploy버튼을 선택하면 deploy과정을 수행하게 된다.
이 때 입력해야 할 정보는 다음과 같은 것이 있다. l Deploy or Pre deploy의 선택: deploy는 운영 중에 실제 동작이 가능하도록 하는 것이며 Pre deploy는 설정과 파일만 옮겨 놓는 것이다. l Context Group: 이는 deploy하고자 하는 context가 어느 context group에 속할지를 결정하는 것이다. 최초 설치 시에는 MyGroup으로 설정되어 있으므로 이를 입력하면 된다. 설정을 확인하는 방법은 WEBMain.xml파일을 보면 된다. l Context path: 이는 DD파일에 기술되어 있으므로 입력하지 않아도 된다. l Context Registration: WEBMain.xml에 등록할지를 결정하는 것이다. 등록을 하게 되면 이후 engine이 부팅될 때에 서비스를 하게 되지만 만약 등록을 하지 않게 되면 이번 deploy시에만 동작하게 되는 것을 의미한다. l WAR 및 DD path: 만들어 둔 war파일 혹은 DD파일을 선택하면 된다. l Target List: deploy할 엔진을 선택하면 된다.
여기까지 작업으로 개발된 WEB application을 deploy할 수 있었다. 하지만 개발 시에는 이러한 방법보다는 직접 deploy된 파일을 수정하는 방법을 많이 사용한다. 직접 수정하는 방법은 위에서 deploy된 파일을 JEUS에서는 적절한 위치에 옮겨놓게 되므로 그 디렉토리를 찾아서 직접 수정하면 된다.
1.2 JDBC의 설정 일반적으로 J2EE에서는 Data Source의 형태로 사용한다. 이는 JNDI에 바인딩 되어 있는 DataSource를 찾아와 그것으로부터 connection을 얻어내는 방법이다. 일반적으로 아래와 같은 예제 코드를 사용하게 된다.
위와 같은 코드로 connection을 얻어오기 위해서는 먼저 JEUS에 DB에 대한 connection pool이 설정되고 아울러 그 pool을 JNDI에 바인딩 시켜놓아야 한다(위의 코드에서는 oracle-data-source란 이름으로). 먼저 DB를 사용하기 위해서는 JDBC드라이버를 $JEUS_HOME/lib/datasource디렉토리에 넣는다. 다른 디렉토리에 넣어도 상관없지만 datasource와 같이 이름을 준 것은 용도에 맞는 라이브러리를 넣도록 하기 위함이므로 지키는 것이 향후 관리에 편할 수 있다. 다음으로 DataSource를 설정한다. 방법은 다음과 같이 간단하게 JEUSMain.xml파일을 수정함으로써 가능하다.
위에서 보듯이 <resource>태그 내 <data-source>태그를 설정하면 된다. Export-name이 바로 JNDI에 바인딩되는 이름을 의미하며 나머지 태그는 DB와 관련 있으므로 따로 설명을 하지는 않는다. 만약 이렇게 JEUSMain.xml을 직접 수정할 수 없는 상황이라면 WEB tool을 이용하면 된다. WEB tool을 구동한 후 아래 그림과 같이 hostname의 tree에서 마우스 오른쪽 버튼을 눌러 Bind datasource를 선택한다.
선택을 하면 아래와 같은 화면이 보여지는데 필요한 값들을 채운 후 bind버튼을 누르면 된다. 위의 JEUSMain.xml에 설정되어 있는 값들만 채우면 된다. 그 외에도 많은 값들이 있는데 필요할 경우에만 채우면 된다. 각 값들의 정확한 설명은 JEUS매뉴얼을 참조하도록 한다.
이 때 주의 할 것이 있는데, Datasource type에 따라 DataSource가질 수 있는 DataSource class name이 있다는 것이다. 오라클의 경우는 다음과 같다. l DataSource: oracle.jdbc.pool.OracleDataSource l ConnectionPoolDataSource/LocalXADataSource: oracle.jdbc.pool.OracleConnectionPoolDataSource l XADataSource: oracle.jdbc.xa.client.OracleXADataSource 각각의 차이점과 다른 DB를 사용할 경우에는 매뉴얼을 참조하도록 한다.
1.3 EJB의 개발 EJB를 개발하기 위해서는 일반적으로 다음과 같은 과정을 수행하게 된다. 1) class의 개발 2) ejb-jar.xml의 생성 3) deploy를 위한 DD파일의 생성 이러한 일련의 작업들은 최근에는 개발 툴을 이용하여 대부분 작업을 하게 된다. 여기서는 이 문서와 같이 제공된 ant를 이용하는 방법에 대해 설명하도록 한다. 필요에 따라 ant의 build.xml파일은 수정을 하면 된다. 제공된 파일의 압축을 풀면 왼쪽 그림과 같은 디렉토리 구조로 나타난다. 최상위 디렉토리에는 build.bat라는 실행명령어와 Readme.txt파일이 있다. 모든 작업은 build라는 명령을 이용하도록 되어 있다(Readme.txt참조). Bin디렉토리는 ant가 사용하는 유틸리티가 들어 있고, lib는 ant의 library파일들이 들어 있다. Conf디렉토리에는 build.xml과 build.conf파일이 있다. Build.xml은 ant를 위한 build파일로 특별한 경우를 제외하고는 수정할 필요가 없다. Build.conf에는 JEUS관련 설정들이 들어 있다. 그러므로 JEUS관련 설정 값들의 수정이 필요한 경우 변경을 하는 작업이 필요하다. Work디렉토리는 개발 시 사용하는 디렉토리이다. 아래에 src라는 디렉토리가 있는데 이 디렉토리에 자신이 개발하는 EJB의 소스가 존재하게 된다. 소스가 위치하는 구조는 자신이 만드는 JAR파일의 이름의 디렉토리 아래에 넣으면 된다. 만약 Hello.jar를 만든다면 디렉토리를 생성한 후 아래에 package형태의 디렉토리로 구성을 하면 된다. 모든 준비가 되었으면 root디렉토리에서 build명령을 이용해 작업을 수행하면 된다. 일단 build란 명령만 입력하면 사용할 수 있는 명령어와 사용방법이 보여진다. 사용할 수 있는 명령어는 다음과 같은 것이 있다.
위에서 살펴본 것처럼 ant를 이용하여 간단하게 EJB를 만들어 적용할 수 있다. 하지만 모든 작업을 완전하게 수행할 수 있는 것은 아니다. 예를 들어 JNDI name을 변경하려면 DD.xml파일을 수정해야 하는데 이럴 경우 work/dist에 있는 JAR파일을 변경할 필요가 있다. 그러한 작업은 약간의 수작업을 필요로 하게 된다.
1.4 한글 문제 한글 문제의 해결을 위해 JEUS에서는 browser로부터 전송되는 data에 대해 encoding관련 설정을 할 수 있도록 하는 다음과 같은 설정을 가지고 있다.
이와 같은 설정은 servlet엔진의 설정 파일인 WEBMain.xml파일에 설정을 하게 된다. 설정방법은 다음과 같다.
이러한 설정은 WEB tool을 이용해서 설정을 할 수 있다. 왼쪽 tree에서 설정을 하고자 하는 servlet엔진을 선택한 후 나타나는 오른쪽 화면에서 configurationàContextGroup을 선택하면 아래와 같은 화면이 보여진다.
Encoding은 context group마다 설정을 할 수 있도록 되어 있으므로 자신이 설정하고자 하는 context group을 선택하면 다음과 같은 화면이 나타난다.
필요한 부분에 대한 설정이 완료되었다면 아랫부분에 있는 modify버튼을 눌러 저장하면 된다. |
윈도우 도스 배치파일 만들기 (0) | 2008.11.04 |
---|---|
JEUS4.2 기초 설정 (0) | 2008.11.03 |
Process Explorer '다른 사람이나 다른 프로그램에서 사용하고 있습니다' (1) | 2008.10.01 |
Jeus webtob의 모든것..[펌] (0) | 2008.09.19 |
소비자는 이해못할 노트북 보증기간 6개월... (2) | 2008.08.28 |