도메인 생성
본 장에서는 도메인을 생성할 때 필요한 조건과 JEUS가 제공하는 툴(jeusadmin)을 사용하여 도메인 생성 방법, 도메인 생성 후 디렉터리 구조에 대해 설명한다.
1. 도메인 생성
도메인을 생성하면 도메인 디렉터리가 생성되고 그 안에 도메인에 속한 서버들을 시작하고 종료할 수 있는 스크립트와 기본적인 설정 파일들이 생성된다. 각 도메인의 최상위 디렉터리는 DOMAIN_HOME이라고 하고, 다음의 경로에 위치한다.
JEUS_HOME/domains/<domain_name>
도메인을 처음 생성하면 MASTER만 포함된 도메인이 생성되며 이후 MS를 추가하여 원하는 도메인을 구성한다. 추가한 MS를 원하는 머신에서 시작하면 해당 머신에 필요한 도메인 정보가 MASTER를 통해 전달된다. 즉, MASTER는 도메인 생성을 통해 도메인 디렉터리를 생성하고, MS는 처음 시작할 때 MASTER를 통해 도메인 디렉터리를 생성한다.
Ant Task나 jeusadmin을 통해 도메인을 생성할 수 있다. 이때 다음의 2가지 조건이 필요하다.
-
도메인 구성에 필요한 네크워크 설정
JEUS는 기본적으로 도메인 내의 서버들 사이에 Multicast로 서로의 상태를 공유하게 되므로 IP 주소와 Port가 필요하다. 도메인 구성이 서브넷을 벗어나서 Multicast로 정보를 공유할 수 없는 경우에는 TCP로 Multicast를 대체한다. 이를 JEUS에서는 Virtual Multicast라고 하며, 도메인을 생성할 때 Virtual Multicast를 사용하겠다는 것을 명시해 줄 수 있다.
이때에는 서버의 기본 Listen IP 주소, Port 번호를 이용하여 서버들 사이에 정보를 공유하게 된다. 따라서 서브넷을 벗어난 도메인 구성에서는 반드시 모든 서버가 Listen IP 주소, Port 번호를 명시해야 한다. 또한 Multicast를 사용하지 못한다는 것도 명시해야 한다.
-
MASTER의 기본 설정
하나의 도메인에는 하나의 MASTER가 반드시 포함되기 때문에 도메인을 생성할 때 MASTER의 기본 설정을 명시해야 한다. 동적 변경이 가능한 서버 설정들은 도메인 생성 후 변경하면 되지만, 그렇지 않은 설정들은 도메인 생성할 때 설정해야 한다. MASTER의 기본 Listen IP 주소와 Port 번호 그외 MASTER를 띄울 JVM의 정보를 설정한다.
1.1. 기본 도메인 생성
본 절에서는 기본 도메인을 생성하는 방법에 대해 설명한다. 기본 도메인을 생성할 때에는 Virtual Multicast가 동작하지 않음에 유의한다.
Ant Task와 jeusadmin 명령에 사용할 속성들은 공통적으로 다음과 같은 기본값을 갖는다.
속성 | 기본값 |
---|---|
MASTER 이름 |
adminServer |
Listen IP 주소 |
0.0.0.0 / 0:0:0:0:0:0:0:0 |
Listen Port 번호 |
9736 |
사용자 이름 |
administrator |
Multicast IP 주소 |
230.30.1.1 / FF01:0:0:0:0:0:0:1 |
Multicast Port 번호 |
3030 |
-
Ant Task를 사용한 도메인 생성
Ant Task에서 설정의 기본값은 JEUS_HOME/setup/domain-config-template.properties에 정의되어 있다. 기본값은 사용자가 별도로 설정하지 않아도 자동으로 값이 설정되지만 아래의 생성 예제에서는 설정 방법 확인을 위해 표시한다.
JEUS_HOME/setup$ ant create-domain -Ddomain=jeus_domain -Dservername=adminServer -Djeus.address=0.0.0.0 -Djeus.port=9736 -Dtransport.address=230.30.1.1 -Dtransport.port=3030
-
jeusadmin을 사용한 도메인 생성
jeusadmin에서 설정 기본값은 JEUS_HOME/setup/domain-config-template.properties에 정의되어 있다. domain-config-template.properties에 jeus.password 설정이 있다면 설정을 따르고 없다면 아래 예제와 같이 password를 입력 받는다.
offline>create-domain -domain jeus_domain -mastername adminServer -taddress 230.30.1.1 -tport 3030 Enter the password for [administrator]: ********** Confirm the password: ********** Do you want to encrypt the password? (y/n): y ================================================================================ The domain [jeus_domain] was created successfully. +-------------------------------+----------------------------------------------+ | Property | Value | +-------------------------------+----------------------------------------------+ | Domain name | jeus_domain | | Master Name | adminServer | | Master Base Listen Port | 9736 | | Master Base Listen Address | 0.0.0.0 | | HTTP Port | 8088 | | User Name | administrator | | Node Name | node1 | | Password | {base}amV1cw== | | JVM Option | -Xmx256m -XX:MaxMetaspaceSize=128m | | Production Mode | true | | Transport Type | HYBRID | +-------------------------------+----------------------------------------------+ ===============================================================================
1.2. Virtual Multicast를 사용하는 도메인 생성
본 절에서는 IP Multicast를 사용할 수 있는 환경인지 테스트하는 방법, 그리고 IP Multicast를 사용할 수 없는 환경이나 도메인이 서브넷을 넘어서는 범위에 걸쳐서 구성되어있을 경우에 Virtual Multicast를 사용하는 도메인의 생성 방법에 대해 설명한다.
IP Multicast를 사용할 수 있는 환경인지 테스트하기 위해서는 mcastSender와 mcastReceiver라는 두 개의 테스트 스크립트를 실행하면 된다. 두 개의 스크립트는 JEUS_HOME/bin에 위치하고 있으며 다음과 같이 각각 다른 머신에서 실행하면 된다.
JEUS_HOME/bin$ mcastReceiver -addr 224.0.0.1 -port 3030 Socket == 0.0.0.0/0.0.0.0 : 3030, bound to /fe80:0:0:0:2a37:37ff:fe1e:fc4%5 Socket == 0.0.0.0/0.0.0.0 : 3030, bound to /192.168.0.26 Socket == 0.0.0.0/0.0.0.0 : 3030, bound to /fe80:0:0:0:3e07:54ff:fe6f:95e%4 Socket == 0.0.0.0/0.0.0.0 : 3030, bound to /61.77.153.207 Socket == 0.0.0.0/0.0.0.0 : 3030, bound to /fe80:0:0:0:0:0:0:1%1 Socket == 0.0.0.0/0.0.0.0 : 3030, bound to /0:0:0:0:0:0:0:1 Socket == 0.0.0.0/0.0.0.0 : 3030, bound to /127.0.0.1
JEUS_HOME/bin$ mcastSender -addr 224.0.0.1 -port 3030 1 == 0.0.0.0/0.0.0.0 : 3030, bound to /fe80:0:0:0:2a37:37ff:fe1e:fc4%5 2 == 0.0.0.0/0.0.0.0 : 3030, bound to /192.168.0.26 3 == 0.0.0.0/0.0.0.0 : 3030, bound to /fe80:0:0:0:3e07:54ff:fe6f:95e%4 4 == 0.0.0.0/0.0.0.0 : 3030, bound to /61.77.153.207 5 == 0.0.0.0/0.0.0.0 : 3030, bound to /fe80:0:0:0:0:0:0:1%1 6 == 0.0.0.0/0.0.0.0 : 3030, bound to /0:0:0:0:0:0:0:1 7 == 0.0.0.0/0.0.0.0 : 3030, bound to /127.0.0.1
이 테스트는 머신의 모든 네트워크 인터페이스를 통해서 IP Multicast 패킷을 송수신하려고 시도한다. 최초에 나오는 주소들은 모든 네트워크 인터페이스를 나타내는 것이다.
이어서 Sender쪽에 나타난 프롬프트에 임의의 메시지를 입력하면 Receiver쪽에 수신된다. 만일 수신이 되지 않는다면 IP Multicast가 제대로 동작하지 않는 환경이기 때문에 아래에 나오는 Virtual Multicast를 설정해야 한다. 위의 mcastSender에서 메시지 테스트의 실행 예는 다음과 같다.
> test >
test [sender = 192.168.0.26 : 5555], [bind_addr=/127.0.0.1] test [sender = 192.168.0.26 : 5555], [bind_addr=/61.77.153.207] test [sender = 192.168.0.26 : 5555], [bind_addr=/fe80:0:0:0:3e07:54ff:fe6f:95e%4] test [sender = 192.168.0.26 : 5555], [bind_addr=/fe80:0:0:0:3e07:54ff:fe6f:95e%4] test [sender = 192.168.0.26 : 5555], [bind_addr=/fe80:0:0:0:2a37:37ff:fe1e:fc4%5] test [sender = 192.168.0.26 : 5555], [bind_addr=/61.77.153.207] test [sender = 192.168.0.26 : 5555], [bind_addr=/192.168.0.26] test [sender = 192.168.0.26 : 5555], [bind_addr=/192.168.0.26] test [sender = 192.168.0.26 : 5555], [bind_addr=/fe80:0:0:0:3e07:54ff:fe6f:95e%4] test [sender = 192.168.0.26 : 5555], [bind_addr=/61.77.153.207] test [sender = 192.168.0.26 : 5555], [bind_addr=/fe80:0:0:0:2a37:37ff:fe1e:fc4%5] test [sender = 192.168.0.26 : 5555], [bind_addr=/61.77.153.207] test [sender = 192.168.0.26 : 5555], [bind_addr=/61.77.153.207] test [sender = 192.168.0.26 : 5555], [bind_addr=/fe80:0:0:0:2a37:37ff:fe1e:fc4%5] test [sender = 192.168.0.26 : 5555], [bind_addr=/61.77.153.207] test [sender = 192.168.0.26 : 5555], [bind_addr=/fe80:0:0:0:3e07:54ff:fe6f:95e%4] test [sender = 192.168.0.26 : 5555], [bind_addr=/192.168.0.26] test [sender = 192.168.0.26 : 5555], [bind_addr=/fe80:0:0:0:3e07:54ff:fe6f:95e%4] test [sender = 192.168.0.26 : 5555], [bind_addr=/fe80:0:0:0:3e07:54ff:fe6f:95e%4] test [sender = 192.168.0.26 : 5555], [bind_addr=/192.168.0.26] test [sender = 192.168.0.26 : 5555], [bind_addr=/fe80:0:0:0:3e07:54ff:fe6f:95e%4] test [sender = 192.168.0.26 : 5555], [bind_addr=/192.168.0.26] test [sender = 192.168.0.26 : 5555], [bind_addr=/61.77.153.207] test [sender = 192.168.0.26 : 5555], [bind_addr=/fe80:0:0:0:2a37:37ff:fe1e:fc4%5] test [sender = 192.168.0.26 : 5555], [bind_addr=/192.168.0.26] test [sender = 192.168.0.26 : 5555], [bind_addr=/fe80:0:0:0:2a37:37ff:fe1e:fc4%5] test [sender = 192.168.0.26 : 5555], [bind_addr=/192.168.0.26] test [sender = 192.168.0.26 : 5555], [bind_addr=/fe80:0:0:0:2a37:37ff:fe1e:fc4%5] test [sender = 192.168.0.26 : 5555], [bind_addr=/fe80:0:0:0:2a37:37ff:fe1e:fc4%5]
하나의 메시지가 다수의 네트워크 인터페이스를 통해서 송신되고, 또한 다수의 네트워크 인터페이스를 통해서 수신되기 때문에 하나 이상의 메시지가 수신될 수 있다. Sender쪽의 프롬프트에 quit 또는 exit를 입력하면 종료되며, Receiver는 <Ctrl> + C를 이용하여 종료해야 한다.
각각의 도움말을 보려면 인자로 -help를 입력하거나 인자를 주지않으면 된다.
다음은 Virtual Multicast를 설정하는 방법이다. 속성의 기본값은 기본 도메인 생성과 동일하고, Virtual Multicast에는 MESH와 TREE의 두가지 type이 존재한다.
-
Ant Task를 사용한 도메인 생성 (MESH 방식)
JEUS_HOME/setup$ ant create-domain -Ddomain=jeus_domain -Djeus.address=192.168.34.1 -Dtransport.type=MESH
-
jeusadmin을 사용한 도메인 생성 (MESH 방식)
offline>create-domain -domain jeus_domain -baseaddress 192.168.34.1 -ttype MESH Enter the password for [administrator]: ********** Confirm the password: ********** Do you want to encrypt the password? (y/n): y ================================================================================ The domain [jeus_domain] was created successfully. +-------------------------------+----------------------------------------------+ | Property | Value | +-------------------------------+----------------------------------------------+ | Domain name | jeus_domain | | Master Name | adminServer | | Master Base Listen Port | 9736 | | Master Base Listen Address | 192.168.34.1 | | HTTP Port | 8088 | | User Name | administrator | | Node Name | node1 | | Password | {base}amV1cw== | | JVM Option | -Xmx256m -XX:MaxMetaspaceSize=128m | | Production Mode | true | | Transport Type | MESH | +-------------------------------+----------------------------------------------+ ================================================================================
-
jeusadmin을 사용한 도메인 생성 (TREE 방식)
offline>create-domain -domain jeus_domain -baseaddress 192.168.34.1 -ttype TREE -taddress 192.168.34.1 -tport 9736 Enter the password for [administrator]: ********** Confirm the password: ********** Do you want to encrypt the password? (y/n): y ================================================================================ The domain [jeus_domain] was created successfully. +-------------------------------+----------------------------------------------+ | Property | Value | +-------------------------------+----------------------------------------------+ | Domain name | jeus_domain | | Master Name | adminServer | | Master Base Listen Port | 9736 | | Master Base Listen Address | 192.168.34.1 | | HTTP Port | 8088 | | User Name | administrator | | Node Name | node1 | | Password | {base}amV1cw== | | JVM Option | -Xmx256m -XX:MaxMetaspaceSize=128m | | Production Mode | true | | Transport Type | TREE | | Transport address | 192.168.34.1 | | Transport port | 9736 | +-------------------------------+----------------------------------------------+ ================================================================================
2. 도메인 구성
본 절에서는 도메인 생성에서 생성한 도메인에 서버와 클러스터를 추가하여 도메인을 구성하는 방법에 대해 설명한다.
서버와 클러스터를 추가하는 것 또한 설정을 변경하는 것이기 때문에 추가하기 전에 다음과 같이 MASTER를 구동한다. 설정 변경에 대한 자세한 내용은 도메인 설정변경을 참고한다.
DOMAIN_HOME/bin$ startMasterServer -u jeus -p jeus
2.1. 콘솔 툴 사용
도메인에 서버와 클러스터를 추가할 때 다음과 같은 순서로 추가 및 설정한다.
Managed Server(MS) 추가
MS를 추가할 때에는 동적으로 변경하지 못하는 설정들을 신중히 고려하여 입력해야 한다.
도메인 생성에서 설명한 도메인을 생성할 때 MASTER의 기본 설정과 마찬가지로 MS를 추가할 때의 기본 설정은 동적 반영이 안 되는 설정이다. 같은 머신에 있는 다른 서버들과 충돌되지 않는 Port 번호를 선정해야 하고, 외부에서 이 서버로 접속할 IP 주소와 서버의 JVM에게 전달할 옵션을 설정해야 한다. 서브넷을 벗어난 도메인의 경우라면 기본값 '0:0:0:0’을 사용하지 않고 하나의 IP 주소를 지정한다. 도메인 내에서 서버 이름은 유일한 값이어야 하므로 등록된 서버 이름을 확인한 후 충돌이 발생하지 않게 설정해야 한다. 본 예제에서 생성할 서버는 같은 클러스터를 구성할 서버들이므로 클러스터 내에서 동일해야 하는 설정들은 각 서버에서 별도로 설정하지 않아도 된다.
다음은 jeusadmin을 사용하여 MS를 추가하는 방법에 대한 설명이다.
add-server 명령어를 사용하여 'server1’이라는 이름의 MS를 추가한다. 동일한 방법으로 'server2’도 추가한다. add-server 명령어에 대한 자세한 사용법은 JEUS Reference 안내서의 add-server를 참고한다.
[MASTER]domain1.adminServer>add-server server1 -node node1 -addr 192.168.34.1 -port 9836 Successfully performed the ADD operation for server (server1). NOTICE : base-addr [192.168.34.1] base-port [9836] http-port [8088] Check the results using "list-servers or add-server"
클러스터 추가
클러스터를 추가할 때에는 클러스터 내의 모든 서버가 같은 서비스를 하기 위한 설정과 클러스터의 기능인 부하 분산(Load Balance)과 장애 극복(Failover)을 위한 설정을 해야한다. 클러스터 설정에 대한 자세한 설명은 클러스터 설정을 참고한다.
다음은 클러스터를 추가하는 과정에 대한 설명이다.
-
add-cluster 명령어를 사용하여 'cluster1’이라는 이름의 'server1’과 'server2’로 구성된 클러스터를 추가한다. add-cluster 명령어에 대한 자세한 사용법은 JEUS Reference 안내서의 add-cluster를 참고한다.
[MASTER]domain1.adminServer> add-cluster cluster1 -servers server1,server2 Successfully performed the ADD operation for cluster (cluster1). Check the results using "list-clusters or add-cluster"
-
클러스터의 추가까지 완료되면 다음과 같이 serverinfo 명령어를 사용하여 도메인의 구성 결과를 확인할 수 있다.
[MASTER]domain1.adminServer>serverinfo Information about Domain (domain1) =============================================================================================== +--------+---------+-----+-------+-----+----------------+---------+-------------+-------------+ | Server | Status | Node| PID | Clus| Latest Start | Need to | Listen Ports| Running | | | |Name | | ter |Time / Shutdown | Restart | | Engines | | | | | | | Time | | | | +--------+---------+-----+-------+-----+----------------+---------+-------------+-------------+ | adminSe| RUNNING | N/A | 5360 | N/A | 2016-08-23 | false | base-192.168| jms, | |rver(*) |(00:01:11| | | |(화) 오후 | |.34.3:9736 | ejb, web | | |) | | | |03:53:28 KST | | http-server-| | | | | | | | | |0.0.0.0:8088 | | | | | | | | | |jms-internal-| | | | | | | | | |0.0.0.0:9741 | | +--------+---------+-----+-------+-----+----------------+---------+-------------+-------------+ | server1| RUNNING |node1| 6424 | clus| 2016-08-23 | false | base-192.168| jms, | | |(00:00:03| | |ter1 |(화) 오후 | |.34.1:9836 | ejb, web | | |) | | | |03:54:37 KST | | | | +--------+---------+-----+-------+-----+----------------+---------+-------------+-------------+ | server2| RUNNING |node2| 3012 | clus| 2016-08-23 | false | base-192.168| jms, | | |(00:00:03| | |ter1 |(화) 오후 | |.34.2:9936 | ejb, web | | |) | | | |03:54:36 KST | | | | +--------+---------+-----+-------+-----+----------------+---------+-------------+-------------+ ===============================================================================================
3. 디렉터리 구성
기본적으로 JEUS를 설치하면 JEUS_HOME 디렉터리와 JEUS_HOME 디렉터리 하위에 jeus_domain이라는 도메인 디렉터리가 생성된다. 본 절에서는 user home의 path가 /home/user1이고 domain이 domain1이라고 설치했다고 가정했을 때의 구성에 대해 설명한다.
3.1. JEUS_HOME 디렉터리
JEUS를 설치했을 때의 전체 디렉터리 구조는 다음과 같다. JEUS_HOME은 JEUS의 최상위 디렉터리로 실제 디렉터리 이름과 위치는 설치할 때 설정할 수 있다.
/home/jeus/JEUS_HOME
JEUS_HOME의 디렉터리 구조는 다음과 같다.
{JEUS_HOME} |--bin | |--[01]startMasterServer | |--[01]startManagedServer | |--[01]stopserver | |--[01]jeusadmin |--derby |--docs |--domains | |--domain1 |--lib |--license |--setup |--templates * Legend - [01]: binary or executable file - [X] : XML document - [J] : JAR file - [T] : Text file - [C] : Class file - [V] : java source file - [DD] : deployment descriptor
- bin
-
서버의 시작, 종료 스크립트인 startMasterServer, startManagedServer, stopServer와 JEUS 콘솔 툴(jeusadmin)과 같은 실행 파일들이 위치한다.
- derby
-
샘플 애플리케이션이나 테스트에서 쉽게 사용할 수 있도록 Apache Derby를 포함시킨다.
- docs
-
JEUS에서 제공하는 API에 대한 Javadoc이 존재한다.
- domains
-
하위에 도메인별로 DOMAIN_HOME이 존재한다.
- lib
-
JEUS를 기동하는 데 필요한 라이브러리가 존재한다. shared 디렉터리를 제외한 나머지 디렉터리들은 사용자가 접근할 필요가 없다.
하위 디렉터리 설명 shared
shared 디렉터리에는 애플리케이션에서 사용하는 라이브러리가 존재한다.
shared 디렉터리에 있는 라이브러리를 사용하기 위해서는 libraries.xml에 라이브러리의 정보를 추가해야 한다. 그리고 해당 라이브러리를 사용할 애플리케이션의 JEUS Deployment Descriptor(DD)에서 해당 라이브러리에 대한 레퍼런스 정보를 지정해야 한다.
shared 라이브러리에 대한 자세한 설명은 JEUS Applications & Deployment 안내서의 공유 라이브러리를 참고한다.
- license
-
JEUS 라이선스 파일이 위치한다. 라이선스 파일은 JEUS가 실행되기 위해서 반드시 필요한 파일이다.
- setup
-
JEUS 설치 후 JEUS를 사용할 수 있도록 환경을 구축하기 위해 필요한 파일들이 위치한다.
- templates
-
각종 설정 정보나 환경 정보 등의 template 파일이 위치한다.
3.2. 도메인 디렉터리
JEUS_HOME/domains/domain1이 domain1의 DOMAIN_HOME 디렉터리가 된다.
도메인 디렉터리의 구조는 다음과 같다.
domain1 |--.applications |--.deploymentplans |--.libraries |--bin |--config |--lib | |--application |--servers
- .applications
-
해당 도메인에서 관리하는 애플리케이션 파일이 존재한다. JEUS가 사용하는 디렉터리로 사용자의 접근을 제한한다. install-application이나 uninstall-application 명령어를 통해서만 추가 및 삭제가 가능하다. 각 명령어에 대한 설명은 JEUS Reference 안내서의 install-application, uninstall-application을 참고한다.
- .deploymentplans
-
해당 도메인에서 관리하는 Deployment Plan이 존재한다. JEUS가 사용하는 디렉터리로 사용자의 접근을 제한한다. install-deployment-plan과 uninstall-deployment-plan 명령어를 통해 Deployment Plan의 추가와 삭제가 가능하다. 각 명령어에 대한 설명은 JEUS Reference 안내서의 install-deployment-plan과 uninstall-deployment-plan을 참고한다.
- .libraries
-
해당 도메인에 설치한 라이브러리 파일이 존재한다. JEUS가 사용하는 디렉터리로 사용자의 접근을 제한한다. install-library 와 uninstall-library 명령어를 통해 라이브러리의 추가와 삭제가 가능하다. 각 명령어에 대한 설명은 JEUS Reference 안내서의 install-library와 uninstall-library를 참고한다.
- bin
-
해당 도메인에 속한 MASTER와 MS의 시작 및 종료 스크립트가 위치한다.
JEUS_HOME/bin의 startMasterServer, startManagedServer, stopServer와 동일한 기능을 수행하나 도메인 이름을 설정할 필요가 없다.
- config
-
도메인의 설정 파일인 domain.xml이 변경된 경우 이전 이력을 위해 존재하는 백업 파일들이 위치한다. 도메인 설정에 대한 자세한 설명은 도메인 설정변경을 참고한다.
-
security
구분 설명 SYSTEM_DOMAIN
도메인 단위로 적용되는 보안 도메인 파일인 accounts.xml, policies.xml이 존재하며, 각 XML 파일은 jeusadmin을 통해 동적 설정 변경이 가능하다.
보안 도메인 설정에 대한 자세한 설명은 JEUS Security 안내서의 보안 도메인 설정를 참고한다.
security.key
대칭 Key 암호화 알고리듬에 대한 Key를 저장하는 파일로 JEUS_HOME/bin/encryption을 수행하면 생성된다. security.key 파일에 대한 자세한 설명은 JEUS Security 안내서의 패스워드 보안 설정을 참고한다.
policy
Java Permission 설정 파일이다. JEUS의 보안 시스템과는 별도로 JavaSE Security Manager에서 사용된다.
-
servlet
구분 설명 webcommon.xml
도메인 내 서버 웹 엔진의 모든 웹 모듈에 적용되는 공통 설정 파일이다.
이 설정에 대한 자세한 설명은 JEUS Web Engine 안내서의 디렉터리 구조를 참고한다.
-
- lib/application
-
도메인 전체에 적용할 애플리케이션 라이브러리를 위치시키는 디렉터리다.
SERVER_HOME에 존재하는 애플리케이션 라이브러리와 충돌이 발생할 경우 SERVER_HOME/lib/application이 우선되고 경고 메시지가 남는다. lib/application 디렉터리에 대한 자세한 설명은 JEUS Applications & Deployment 안내서의 lib/application 디렉터리를 참고한다.
- servers
-
디렉터리 하위에 SERVER_HOME 디렉터리가 서버 이름으로 생성된다. SERVER_HOME 디렉터리 구조에 대한 자세한 설명은 JEUS Server 안내서의 서버 디렉터리 구조를 참고한다.