Jeus관리자 지침서



Yüklə 148.3 Kb.
tarix14.08.2018
ölçüsü148.3 Kb.

JEUS 개발가이드








<목차>

1. 개발자를 위한 기본 가이드 3

1.1 WEB application 추가 방법 3

1.2 JDBC 설정 5

1.3 EJB 개발 7

1.개발자를 위한 기본 가이드

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가능 여부 등과 같은 설정이 들어가게 된다.

아래는 설정 예제 파일이다.





sample

/sample

sample



true

true







위의 내용을 보면 지금 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

4장에서 설명한 것과 같이 WEB tool을 구동한 후 아래 그림과 같이 deployment에서 servlet을 선택한 후 오른쪽에 나타나는 화면에서 필요한 정보들을 입력한 후 deploy버튼



을 선택하면 deploy과정을 수행하게 된다. 이 때 입력해야 할 정보는 다음과 같은 것이 있다.



Deploy or Pre deploy 선택: deploy는 운영 중에 실제 동작이 가능하도록 하는 것이며 Pre deploy는 설정과 파일만 옮겨 놓는 것이다.

Context Group: 이는 deploy하고자 하는 context가 어느 context group에 속할지를 결정하는 것이다. 최초 설치 시에는 MyGroup으로 설정되어 있으므로 이를 입력하면 된다. 설정을 확인하는 방법은 WEBMain.xml파일을 보면 된다.

Context path: 이는 DD파일에 기술되어 있으므로 입력하지 않아도 된다.

Context Registration: WEBMain.xml에 등록할지를 결정하는 것이다. 등록을 하게 되면 이후 engine이 부팅될 때에 서비스를 하게 되지만 만약 등록을 하지 않게 되면 이번 deploy시에만 동작하게 되는 것을 의미한다.

WAR DD path: 만들어 둔 war파일 혹은 DD파일을 선택하면 된다.

Target List: deploy할 엔진을 선택하면 된다.
여기까지 작업으로 개발된 WEB application을 deploy할 수 있었다. 하지만 개발 시에는 이러한 방법보다는 직접 deploy된 파일을 수정하는 방법을 많이 사용한다. 직접 수정하는 방법은 위에서 deploy된 파일을 JEUS에서는 적절한 위치에 옮겨놓게 되므로 그 디렉토리를 찾아서 직접 수정하면 된다.

1.2 JDBC의 설정


일반적으로 J2EE에서는 Data Source의 형태로 사용한다. 이는 JNDI에 바인딩 되어 있는 DataSource를 찾아와 그것으로부터 connection을 얻어내는 방법이다.

일반적으로 아래와 같은 예제 코드를 사용하게 된다.



InitialContext ctx = new InitialContext();

DataSource ds = (DataSource) ctx.lookup(“oracle-data-source”);

Connection con = ds.getConnection();


위와 같은 코드로 connection을 얻어오기 위해서는 먼저 JEUS에 DB에 대한 connection pool이 설정되고 아울러 그 pool을 JNDI에 바인딩 시켜놓아야 한다(위의 코드에서는 oracle-data-source란 이름으로).

먼저 DB를 사용하기 위해서는 JDBC드라이버를 $JEUS_HOME/lib/datasource디렉토리에 넣는다. 다른 디렉토리에 넣어도 상관없지만 datasource와 같이 이름을 준 것은 용도에 맞는 라이브러리를 넣도록 하기 위함이므로 지키는 것이 향후 관리에 편할 수 있다.

다음으로 DataSource를 설정한다. 방법은 다음과 같이 간단하게 JEUSMain.xml파일을 수정함으로써 가능하다.



………..{중략}……….











oracle

oracle-data-source

oracle.jdbc.pool.OracleConnectionPoolDataSource

ybsong

oracle db

1521



localhost

scott

thin

tiger



ConnectionPoolDataSource


20

1600000












위에서 보듯이 태그 내 태그를 설정하면 된다. Export-name이 바로 JNDI에 바인딩되는 이름을 의미하며 나머지 태그는 DB와 관련 있으므로 따로 설명을 하지는 않는다.

만약 이렇게 JEUSMain.xml을 직접 수정할 수 없는 상황이라면 WEB tool을 이용하면 된다. WEB tool을 구동한 후 아래 그림과 같이 hostname의 tree에서 마우스 오른쪽 버튼을 눌러 Bind datasource를 선택한다.



선택을 하면 아래와 같은 화면이 보여지는데 필요한 값들을 채운 후 bind버튼을 누르면 된다. 위의 JEUSMain.xml에 설정되어 있는 값들만 채우면 된다. 그 외에도 많은 값들이 있는데 필요할 경우에만 채우면 된다. 각 값들의 정확한 설명은 JEUS매뉴얼을 참조하도록 한다.


이 때 주의 할 것이 있는데, Datasource type에 따라 DataSource가질 수 있는 DataSource class name이 있다는 것이다. 오라클의 경우는 다음과 같다.



DataSource: oracle.jdbc.pool.OracleDataSource

ConnectionPoolDataSource/LocalXADataSource: oracle.jdbc.pool.OracleConnectionPoolDataSource

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란 명령만 입력하면 사용할 수 있는 명령어와 사용방법이 보여진다. 사용할 수 있는 명령어는 다음과 같은 것이 있다.

make_jeus_ejb

JEUS를 위한 EJB JAR파일을 생성할 때 사용하는 명령어. Work/src아래에 있는 JAR의 name을 인자로 받아들여 작업을 수행하고 만들어진 JAR파일은 work/dist안에 놓여진다. JAR파일 속에는 ejb-jar.xml과 DD.xml이 META-INF에 들어가게 된다.

예) build make_jeus_ejb Hello



deploy

운영되고 있는 JEUS에 work/dist에 있는 JAR파일을 deploy하고자 할 경우에 사용한다.

예) build deploy Hello



undeploy

Deploy되어 있는 EJB module(JAR)을 내리고자 할 경우 사용한다.

예) build undeploy Hello



modulelist

Deploy되어 운영되고 있는 EJB module(JAR)의 목록을 보고자 할 경우 사용한다.

예) build modulelist



conv_ejb_wltojeus

WebLogic용으로 되어 있는 JAR파일을 JEUS용으로 변환하여 work/dist디렉토리에 넣는다. WebLogic용 JAR파일은 weblogic디렉토리에 넣으면 된다. 이 디렉토리를 바꿀려면 conf/build.conf를 수정하면 된다.

예) build conv_ejb_wltojeus ejb20_basic_statelessSession



make_deploy

JEUS용 EJB JAR파일을 만들고 deploy까지 한번에 수행할 때 사용하면 된다.

예) build make_deploy Hello



conv_deploy

WebLogic용 JAR파일을 JEUS용으로 변환하고 deploy까지 한번에 수행하고자 할 경우 사용한다.

예) build conv_deploy ejb20_basic_statelessSession



위에서 살펴본 것처럼 ant를 이용하여 간단하게 EJB를 만들어 적용할 수 있다. 하지만 모든 작업을 완전하게 수행할 수 있는 것은 아니다. 예를 들어 JNDI name을 변경하려면 DD.xml파일을 수정해야 하는데 이럴 경우 work/dist에 있는 JAR파일을 변경할 필요가 있다. 그러한 작업은 약간의 수작업을 필요로 하게 된다.

7.4 한글 문제


한글 문제의 해결을 위해 JEUS에서는 browser로부터 전송되는 data에 대해 encoding관련 설정을 할 수 있도록 하는 다음과 같은 설정을 가지고 있다.

Request-encoding: browser로부터 GET방식으로 전송되는 data에 대한 encoding

Postdata-encoding: browser로부터 POST방식으로 전송되는 data에 대한 encoding

Response-encoding: browser로 전송하는 data에 대한 encoding

이와 같은 설정은 servlet엔진의 설정 파일인 WEBMain.xml파일에 설정을 하게 된다.

설정방법은 다음과 같다.







MyGroup

c:/project

webapps





8859_1

8859_1


8859_1

8859_1


8859_1

8859_1



……이하 생략……



이러한 설정은 WEB tool을 이용해서 설정을 할 수 있다. 왼쪽 tree에서 설정을 하고자 하는 servlet엔진을 선택한 후 나타나는 오른쪽 화면에서 configurationContextGroup을 선택하면 아래와 같은 화면이 보여진다.

Encoding은 context group마다 설정을 할 수 있도록 되어 있으므로 자신이 설정하고자 하는 context group을 선택하면 다음과 같은 화면이 나타난다.



필요한 부분에 대한 설정이 완료되었다면 아랫부분에 있는 modify버튼을 눌러 저장하면 된다.






Dostları ilə paylaş:


Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2017
rəhbərliyinə müraciət

    Ana səhifə