Windows 환경에서 설치 및 제거

본 장에서는 Windows에서 JEUS를 설치하고 제거하는 과정에 대해서 설명한다.

1. 개요

Windows 환경에서 JEUS 설치/제거는 GUI 설치 툴을 통하여 이루어진다.

JEUS 설치는 다음의 과정으로 진행된다.

  1. JDK 8, JDK 11 또는 JDK 17 설치

  2. GUI 모드에서 JEUS 설치(파일 복사)

  3. 설치 확인

    • 기동 확인

    • 환경변수 설정과 검증

JEUS 제거도 GUI 모드에서 진행된다.

JEUS 패치가 있을 경우 JEUS_HOME/lib에 jext, jlext, jnext 디렉터리에 적용 및 확인이 가능하다.

2. 설치

본 절은 GUI 설치 툴을 사용하여 Windows에서 JEUS를 설치하는 방법을 설명한다.

UNIX/Linux 환경과는 달리 Windows 환경에서는 JEUS를 설치할 때 콘솔 모드를 제공하지 않는다.

Windows에 JEUS를 설치하려면 다음과 같은 단계로 진행한다.

  1. JEUS 설치 프로그램인 jeus9001_win_ko.exe가 위치한 디렉터리로 이동한다. 해당 파일을 더블클릭해서 실행한다.

  2. 설치 툴의 초기 화면이 나타난다. 진행이 100%가 될 때까지 기다린다.

  3. Introduction 화면이 표시된다. 소개 내용을 읽고 [Next] 버튼을 클릭한다. 설치를 취소하려면 [Cancel] 버튼을 클릭한다.

    figure Introduction
    Windows에서 설치 - Introduction
  4. License Agreement 화면이 나타난다. 라이선스 준수 내용을 읽고 "I accept the terms of …"를 선택한 후 [Next] 버튼을 클릭한다.

    figure License  Agreement
    Windows에서 설치 - License Agreement
  5. Installation Folder 화면에서 설치 경로를 설정한다.

    JEUS 바이너리와 기타 다른 파일들은 설정한 경로의 디렉터리 하위에 설치된다. [Choose…] 버튼을 클릭하면 다른 설치 폴더를 선택할 수 있고 [Restore Default Folder] 버튼을 클릭하면 초기 기본 폴더로 복귀한다. 가능하면 기본 폴더를 그대로 사용하길 권장한다. (예: “C:\TmaxSoft\JEUS9”)

    설치할 디렉터리를 선택하고 [Next] 버튼을 클릭한다.

    figure Installation Folder
    Windows에서 설치 - Installation Folder
  6. Installation Type 화면의 설치 옵션에서 Domain Admin Server와 Managed Server 중 하나를 선택하고 [Next] 버튼을 클릭한다.

    figure Installation Type
    Windows에서 설치 - Installation Type

    다음은 각 설치 항목에 대한 설명이다.

    항목 설명

    Master Server

    Master Server를 설치한다. Master Server는 Managed Server를 관리하기 위한 서버이다.

    Managed Server

    Managed Server를 설치한다.

  7. JDK Path 선택 화면에서 설치된 Java JDK 전체 경로(예: “C:\java\17.0.6")를 입력한다.

    설치 프로그램은 설치된 JDK 경로를 제안하지만 경우에 따라 변경할 수 있다. [Choose…] 버튼을 클릭하면 다른 설치 폴더를 선택할 수 있고, [Restore Default Location] 버튼을 클릭하면 초기 기본 폴더로 복귀한다.

    figure Java  Path
    Windows에서 설치 - JDK Path

    JEUS 설치 후에 Java JDK를 설치하려면 JDK 설치 경로를 포함하는 JAVA_HOME 환경변수를 수동으로 설정해야 한다. 그러므로 JDK를 설치한 후 JEUS를 설치할 것을 권장한다. 예를 들면 Windows 명령 프롬프트에 set JAVA_HOME=C:\java\jdk17.0.6 명령을 실행하여 설정한다.

  8. Domain Admin Server를 선택한 경우 Installation Mode를 선택한다.

    figure Installation  Mode
    Windows에서 설치 - Installation Mode

    다음은 설치 옵션에 대한 설명이다.

    항목 설명

    Production Mode

    Production Mode(운영 모드)로 설치한다. JEUS Hot Swap, Automatic Reloading을 사용하지 않는다. demo license가 사용되면 경고 메시지가 출력된다.

    Development Mode

    Development Mode(개발 모드)로 설치한다. JEUS Hot Swap, Automatic Reloading을 사용한다.

  9. Windows용 설치 파일에서는 Windows 서비스 등록 선택 화면이 나타난다. Windows 서비스 등록에 대한 자세한 내용은 서비스 등록을 참고한다.

    figure windowservice
    Windows 서비스 등록 여부 선택 화면
  10. 지금까지 설정한 설치 정보를 확인한 후 [Next] 버튼을 클릭해서 설치를 시작한다.

    figure Pre Installation Summary
    Windows에서 설치 - Pre-Installation Summary
  11. Get Password 화면에서 JEUS 관리자의 패스워드를 입력한다. 패스워드는 'administrator' 관리자 계정으로 할당된다.

    figure password
    Windows에서 설치 - Get Password
  12. 설치가 진행되는 것을 확인할 수 있다.

    figure Installing JEUS9
    Windows에서 설치 - Installing JEUS
  13. 설치가 완료된 것을 확인하고 [Done] 버튼을 클릭하면 설치가 종료된다.

    figure Install  Complete
    Windows에서 설치 - Install Complete

3. 설치 확인

JEUS를 설치한 후 사용에 필요한 환경변수를 설정해야 한다. 환경변수를 설정하고 JEUS를 기동해서 설치가 정상적으로 이루어졌는지 확인한다. 환경변수를 설정하기 전에 JEUS가 설치된 경로에 디렉터리 구조를 확인한다.

3.1. 디렉터리 구조

다음은 JEUS를 설치했을 때의 전체 디렉터리 구조이다.

{JEUS_HOME}
    |-- bin
    |    |--[01]startMasterServer
    |    |--[01]startManagedServer
    |    |--[01]stopServer
    |    |--[01]jeusadmin
    |--derby
    |--docs
    |--lib
    |   |--shared
    |        |--[X]libraries.xml
    |--license
    |--nodemanager
    |--setup
    |--templates
    |--samples
    |--webserver
    |--domains
          |--<domain_name>
                  |--.applications
                  |--.deploymentplans
                  |--.libraries
                  |--bin
                  |--config
                  |--lib
                  |   |--application
                  |--servers
                      |--<server_name>
                             |--.workspace
                             |     |--deployed
                             |     |--tmp
                             |     |--web-nio
                             |     |--tmlog
                             |--bin
                             |--lib
                             |   |--application
                             |--logs
                             |--nodemanager

* 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

다음은 디렉터리와 파일의 설명이다.

{JEUS_HOME}

JEUS의 최상위 디렉터리로 실제 디렉터리 이름과 위치는 설치할 때 결정된다.

bin

서버의 시작 및 종료 스크립트인 startMasterServer, startManagedServer, stopServer와 JEUS 콘솔 툴(jeusadmin)과 같은 실행 파일들이 위치한다.

derby

샘플 애플리케이션이나 테스트에서 쉽게 사용할 수 있도록 Apache Derby를 포함시킨다.

docs

JEUS에서 제공하는 API에 대한 Javadoc이 존재한다.

lib

JEUS가 기동하는 데 필요한 라이브러리가 존재한다. shared 디렉터리를 제외한 나머지 디렉터리들은 사용자가 접근할 필요가 없다.

디렉터리 설명

shared

shared 디렉터리에는 애플리케이션에서 사용하는 라이브러리가 존재한다.

shared 디렉터리의 라이브러리를 사용하려면 libraries.xml에 라이브러리의 정보를 추가해야 한다. 그리고 해당 라이브러리를 사용할 애플리케이션의 JEUS Deployment Descriptor(DD)에서 해당 라이브러리에 대한 레퍼런스 정보를 지정해야 한다. shared 라이브러리에 대한 자세한 설명은 JEUS Applications & Deployment 안내서의 공유 라이브러리를 참고한다.

license

JEUS 라이선스 파일이 위치한다. 라이선스 파일은 JEUS가 실행되기 위해서 반드시 필요한 파일이다.

nodemanager

JEUS 노드 매니저를 위한 설정 파일인 jeusnm.xml 파일이 위치한다.

setup

JEUS 설치 후 사용할 수 있도록 환경을 구축하기 위해 필요한 파일들이 위치한다.

templates

각종 설정과 환경 등의 template 파일이 위치한다.

samples

JEUS의 예제 파일들이 위치한다.

webserver

JEUS가 설치될 때 JEUS 웹 서버가 설치되는 디렉터리이다. 자세한 내용은 JEUS Web Engine 안내서를 참조한다.

domains

하위에 도메인별로 DOMAIN_HOME과 JEUS_HOME에서 사용하는 노드 정보가 포함된 nodes.xml이 존재한다.

다음의 디렉터리 및 파일들은 DOMAIN_HOME 아래에 위치한다.

  • .applications

    해당 도메인에서 관리하는 애플리케이션 파일이 존재한다.

    install-application, uninstall-application 명령어를 통해 추가 및 삭제가 가능하다. JEUS가 사용하는 디렉터리로 사용자의 접근을 제한한다. 각 명령어에 대한 설명은 JEUS Reference 안내서의 install-applicationuninstall-application을 참고한다.

  • .deploymentplans

    해당 도메인에서 관리하는 Deployment Plan 파일이 존재한다.

    install-deployment-plan, uninstall-deployment-plan 명령어를 통해 추가 및 삭제가 가능하다. JEUS가 사용하는 디렉터리로 사용자의 접근을 제한한다. 각 명령어에 대한 설명은 JEUS Reference 안내서의 install-deployment-planuninstall-deployment-plan을 참고한다.

  • .libraries

    해당 도메인에서 관리하는 라이브러리 파일이 존재한다.

    install-library, uninstall-library 명령어를 통해 추가 및 삭제가 가능하다. JEUS가 사용하는 디렉터리로 사용자의 접근을 제한한다. 각 명령어에 대한 설명은 JEUS Reference 안내서의 install-libraryuninstall-library를 참고한다.

  • bin

    해당 도메인에 속한 Master Server와 Managed Server의 시작 및 종료 스크립트가 위치한다. JEUS_HOME/bin의 startMasterServer, startManagedServer, stopServer와 동일한 기능을 수행하지만 도메인 이름을 설정할 필요가 없다.

  • config

    도메인의 설정 파일인 domain.xml이 변경된 경우 이전 이력을 위해 존재하는 백업 파일들이 위치한다. 도메인 설정에 대한 자세한 설명은 JEUS Domain 안내서의 도메인 설정변경을 참고한다.

    구분 설명

    security

    • SYSTEM_DOMAIN : 도메인 단위로 적용되는 보안 도메인 파일인 accounts.xml, policies.xml이 존재하며, 각 XML 파일은 jeusadmin을 통해 동적 설정 변경이 가능하다. 보안 도메인 설정에 대한 자세한 설명은 JEUS Security 안내서의 보안 도메인 설정을 참고한다.

    • security-domains.xml : JEUS의 보안 도메인에 대한 설정을 저장하는 파일이다.

    • security.key : 대칭키 암호화 알고리듬에 대한 Key를 저장하는 파일로 JEUS_HOME/bin/encryption을 수행하면 생성된다. security.key 파일에 대한 자세한 설명은 JEUS Security 안내서의 패스워드 보안 설정을 참고한다.

    • policy : Java permission 설정 파일이다. JEUS의 보안 시스템과는 별도로 Java SE Security Manager에서 사용된다.

    servlet

    • web.xml : web.xml을 개별적으로 가지고 있지 않은 경우 웹 엔진이 사용할 웹 모듈의 web.xml이다. 기본값은 빈 XML 파일이다.

    • webcommon.xml : 도메인 내 서버의 웹 엔진의 모든 웹 모듈에 적용되는 공통 설정 파일이다. 설정에 대한 자세한 설명은 JEUS Web Engine 안내서의 디렉터리 구조를 참고한다.

    webadmin

    • webadmin 폴더는 webadmin 설정을 저장하는 폴더이다.

    • rolewithusers.json : 사용자와 webadmin 페이지 간 권한 관계를 저장하는 파일이다.

  • lib/application

    도메인 전체에 적용하고 싶은 애플리케이션 라이브러리를 위치시키는 디렉터리다.

    SERVER_HOME에 존재하는 애플리케이션 라이브러리와 충돌이 발생할 경우 SERVER_HOME/lib/application이 우선되고 경고 메시지가 남는다. lib/application 디렉터리에 대한 자세한 설명은 JEUS Applications & Deployment 안내서의 lib/application 디렉터리를 참고한다.

  • servers

    이 디렉터리 하위에 SERVER_HOME 디렉터리가 서버 이름으로 생성된다. SERVER_HOME 디렉터리 구조에 대한 자세한 설명은 JEUS Server 안내서의 서버 디렉터리 구조를 참고한다.

    디렉터리 설명

    .workspace

    JEUS가 사용하는 서버별 공간으로 사용자가 변경해서는 안 된다.

    bin

    서버의 시작/종료 스크립트를 포함하고 있다. JEUS_HOME/bin의 스크립트와 동일한 기능을 수행하지만 도메인 이름과 서버 이름을 설정할 필요가 없다.

    • Master Server일 경우 : startMasterServer/stopServer가 존재한다.

    • Managed Server일 경우 : startManagedServer/stopserver가 존재한다.

    lib/application

    서버에 적용하고 싶은 애플리케이션 라이브러리가 존재한다. 도메인 범위의 라이브러리(DOMAIN_HOME/lib/application)보다 우선순위가 높다. 라이브러리가 충돌할 경우 이 디렉터리에 존재하는 파일이 적용되며 경고 메시지가 남는다. lib/application에 대한 자세한 설명은 JEUS Applications & Deployment 안내서의 lib/application 디렉터리를 참고한다.

    logs

    서버의 Launcher 로그, 서버 로그, 엑세스 로그 파일이 남는다. 자세한 내용은 JEUS Server 안내서의 Logging을 참고한다.

    nodemanager

    노드 매니저가 재기동할 때 관리하고 있던 서버였는지를 판단하기 위한 정보를 저장하는 디렉터리이다. JEUS가 사용하는 디렉터리로 사용자의 접근을 제한한다.

3.2. 환경설정

JEUS를 사용하기 위해서는 환경변수가 필요하다. 설치 과정에서 일부 환경변수를 설정하지만 경우에 따라서는 수정해서 사용한다. 해당 변수들은 설치할 때 환경변수 PATH는 .profile/.cshrc에 적용되고, 그 외 환경변수는 $JEUS_HOME/bin/jeus.properties 파일에 설정된다. 만약 서버 별로 서로 다른 환경변수를 설정하려면 $JEUS_HOME/bin/<SERVER_NAME>.properties 파일을 작성한다. 서버를 기동하는 경우 [-server] 옵션을 사용하여 서버 이름을 지정한다.

노드 매니저를 사용하는 경우에는 서버별로 환경변수를 설정할 수 없다.

다음은 주요 환경변수에 대한 설명이다.

환경변수 설명

PATH

시스템 경로를 설정한다.

다음을 포함하고 있어야 한다.

  • C:\TmaxSoft\JEUS9\bin

  • C:\TmaxSoft\JEUS9\lib\system

JEUS_HOME

JEUS 설치 디렉터리를 설정한다. (예: C:\TmaxSoft\JEUS9)

JEUS_LIBPATH

JEUS 라이브러리 파일 경로를 설정한다. (예: C:\TmaxSoft\JEUS9\lib\system)

VM_TYPE

Java HotSpot JVM 사용 유무를 설정한다. (예: hotspot or old)

USERNAME

Administrator 계정의 ID를 설정한다.

PASSWORD

Administrator 패스워드를 설정한다.

JAVA_HOME

JDK 설치 디렉터리 경로를 설정한다. (예: /usr/jdk17)

ANT_HOME

ANT 설치 디렉터리 경로를 설정한다. (예: C:\TmaxSoft\JEUS9\lib\etc\ant)

JAVA_ARGS

JDK 파라미터를 설정한다.

JAVA_VENDOR

JDK 벤더를 설정한다. (예: Sun, IBM)

3.3. 기동 확인

JEUS 설치가 정상적으로 완료되었는지 확인하기 위해 다음 단계를 진행해서 JEUS를 기동한다.

  1. 콘솔 프롬프트에 startMasterServer 명령어를 입력해서 Master Server(MASTER)를 시작한다. 일반적으로 관리자의 계정은 'administrator’이고 패스워드는 JEUS를 설치할 때 입력한 값이다.

    다음은 명령어를 실행해서 Master Server(MASTER)를 시작하는 방법이다.

    startMasterServer -u <user_name> -p <password>

    기동이 완료되면 "Successfully started the server. The server state is now RUNNING."라는 메시지가 출력된다.

    C:\TmaxSoft\JEUS9\bin> startMasterServer -u administrator -p <password>
    ***************************************************************
      - JEUS Home         : C:\TmaxSoft\JEUS9
      - Added Java Option : -Djeus.io.buffer.size-per-pool=81920 -Djeus.cdi.enabled=false -Djeus.jms.server.manager.produce-wait-strategy-type=blocking -Djeus.servlet.sortWebinfLibraries=name_asc
    ***************************************************************
    
    =============== JEUS LICENSE INFORMATION ================
    == VERSION : JEUS 9 Fix#1 (9.0.0.1-b47)
    == EDITION: Enterprise (Trial License)
    == NOTICE: This license restricts the number of allowed clients.
    == Max. Number of Clients: 5
    ==========================================================
    [2025.06.19 14:57:18][1] [launcher-1] [Config-0153] DomainConfigServiceProvider is jeus.service.descriptor.JEUSDomainDescriptorFile.
    This license is not appropriate for product runtime mode. Replace the license with an appropriate one.
    [2025.06.19 14:57:18][1] [launcher-1] [Config-0157] SecurityDomainsConfigServiceProvider is jeus.service.descriptor.SecurityDomainsDescriptorFile.
    [2025.06.19 14:57:18][2] [launcher-1] [Launcher-0012] Starting the server [adminServer] with the command
     C:\Program Files\Java\jdk-17.0.6\bin\java -DadminServer -Xms1024m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m -Djeus.io.buffer.size-per-pool=81920 -Djeus.cdi.enabled=false -Djeus.jms.server.manager.produce-wait-strategy-type=blocking -Djeus.servlet.sortWebinfLibraries=name_asc -server -Xbootclasspath/a:C:\TmaxSoft\JEUS9\lib\system\extension.jar --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.security=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.base/sun.security.util=ALL-UNNAMED --add-exports=java.base/sun.net.www.protocol.jar=ALL-UNNAMED --add-exports=java.base/sun.nio.cs=ALL-UNNAMED --add-exports=java.base/sun.reflect.misc=ALL-UNNAMED --add-exports=java.base/sun.security.util=ALL-UNNAMED --add-exports=java.rmi/sun.rmi.server=ALL-UNNAMED --add-exports=java.xml/com.sun.org.apache.xerces.internal.jaxp=ALL-UNNAMED --add-exports=java.xml/com.sun.org.apache.xerces.internal.parsers=ALL-UNNAMED --add-exports=java.xml/com.sun.org.apache.xml.internal.serialize=ALL-UNNAMED --add-exports=java.xml/com.sun.org.apache.xerces.internal.dom=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-exports=java.xml/com.sun.org.apache.xerces.internal.util=ALL-UNNAMED -classpath C:\TmaxSoft\JEUS9\lib\system\bootstrap.jar -Djava.security.policy=C:\TmaxSoft\JEUS9\domains\jeus_domain\config\security\policy -Djava.library.path=C:\TmaxSoft\JEUS9\lib\system -Djeus.properties.replicate=jeus,java.util.logging,sun.rmi.dgc,java.net -Djeus.server.home=C:\TmaxSoft\JEUS9\domains\jeus_domain\servers\adminServer -Djeus.server.name=adminServer -Djava.util.logging.config.file=C:\TmaxSoft\JEUS9\bin\logging.properties -Dsun.rmi.dgc.server.gcInterval=3600000 -Djava.util.logging.manager=jeus.util.logging.JeusLogManager -Djeus.home=C:\TmaxSoft\JEUS9 -Djava.net.preferIPv4Stack=true -Djeus.tm.checkReg=true -Djeus.dispatcher.blocking=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Djeus.tool.webadmin.locale.language=ko -Djeus.domain.name=jeus_domain -Djava.naming.factory.initial=jeus.jndi.JNSContextFactory -Djava.naming.factory.url.pkgs=jeus.jndi.jns.url -Djeus.server.protectmode=false -Dis.jeus.master=true -Dsun.net.http.errorstream.enableBuffering=true -XX:+UnlockDiagnosticVMOptions -XX:+LogVMOutput -XX:LogFile=C:\TmaxSoft\JEUS9\domains\jeus_domain\servers\adminServer\logs\jvm.log jeus.server.admin.MasterServerBootstrapper -domain jeus_domain -u administrator -verbose -server adminServer .
    [2025.06.19 14:57:18][2] [launcher-1] [Launcher-0014] The server[adminServer] is being started ...
    [2025.06.19 14:57:18][1] [adminServer-1] [Config-0153] DomainConfigServiceProvider is jeus.service.descriptor.JEUSDomainDescriptorFile.
    [2025.06.19 14:57:18][1] [adminServer-1] [Config-0157] SecurityDomainsConfigServiceProvider is jeus.service.descriptor.SecurityDomainsDescriptorFile.
    [2025.06.19 14:57:18][2] [adminServer-1] [SERVER-0248] The JEUS server is STARTING.
    [2025.06.19 14:57:18][0] [adminServer-1] [SERVER-0000] Version information - JEUS 9 Fix#1 (9.0.0.1-b47).
    
    ... 중략
    
    [2025.06.19 14:57:19][2] [adminServer-1] [SERVER-0248] The JEUS server is STANDBY.
    [2025.06.19 14:57:19][2] [adminServer-1] [SERVER-0248] The JEUS server is STARTING.
    [2025.06.19 14:57:19][2] [adminServer-1] [WEB-3413] The web engine is ready to receive requests.
    [2025.06.19 14:57:19][2] [adminServer-1] [NET-0002] Beginning to listen to NonBlockingChannelAcceptor: qpsp1:8808.
    [2025.06.19 14:57:19][2] [adminServer-1] [UNIFY-0100] Listener information
    
    +------------+-------+--------------+-----------+----------------------------------------+
    | Name       | SSL   | Address:Port | Protocol  | Virtual Listener                       |
    +------------+-------+--------------+-----------+----------------------------------------+
    | base       | false | 0.0.0.0:9736 | VIRTUAL   | ClassFTP                               |
    |            |       |              |           | SecurityServer                         |
    |            |       |              |           | JMXConnectionServer/JEUSMP_adminServer |
    |            |       |              |           | JMXConnectionServer/JeusMBeanServer    |
    |            |       |              |           | TransactionManager                     |
    |            |       |              |           | JMSServiceChannel-default              |
    |            |       |              |           | FileTransfer                           |
    |            |       |              |           | JNDI                                   |
    |            |       |              | HTTP      |                                        |
    +------------+-------+--------------+-----------+----------------------------------------+
    | http-server| false | 0.0.0.0:8808 | ProObject |                                        |
    |            |       |              | HTTP      |                                        |
    +------------+-------+--------------+-----------+----------------------------------------+
    
    ... 중략
    
    [2025.06.19 14:57:19][2] [launcher-13] [Launcher-0034] The server[adminServer] initialization completed successfully[pid : 473].
    [2025.06.19 14:57:19][0] [launcher-1] [Launcher-0040] Successfully started the server[adminServer]. The server state is now RUNNING.
    1. “Invalid License” 메시지가 나타나면 라이선스가 잘못된 것이다. TmaxSoft로부터 라이선스를 취득하여 $JEUS_HOME/license 디렉터리에 복사한다.

    2. 모든 단계들의 진행과 환경변수가 정확히 설정되어 있는지 확인한다. 특히, /jeus/bin 디렉터리가 시스템 경로(startMasterServer 스크립트가 실행될 수 있도록)에 있는 것을 확인한다.

  2. Managed Server(MS)를 시작한다. Managed Server는 startManagedServer 명령어를 실행할 수 있다.

    • startManagedServer 명령어 실행

      다음은 startManagedServer 명령어를 이용해 Managed Server(MS)를 기동하는 방법이다.

      startManagedServer -domain <domain_name> -server <server_name> -u <user_name> -p <password>

      콘솔 프롬프트에 명령어를 입력하면 다음 메시지를 출력한다. 일반적으로 관리자의 계정은 'administrator’이고 패스워드는 JEUS를 설치할 때 입력한 값이다. JEUS MS가 정상적으로 부트되어 기동되면 "Successfully started the server. The server state is now RUNNING."라는 메시지가 출력된다.

      C:\TmaxSoft\JEUS9\bin> startManagedServer -domain jeus_domain -server server2 -u administrator -p <password>
      ***************************************************************
        - JEUS Home         : C:\TmaxSoft\JEUS9
        - Added Java Option : -Djeus.io.buffer.size-per-pool=81920 -Djeus.cdi.enabled=false -Djeus.jms.server.manager.produce-wait-strategy-type=blocking -Djeus.servlet.sortWebinfLibraries=name_asc
      ***************************************************************
      
      =============== JEUS LICENSE INFORMATION ================
      == VERSION : JEUS 9 Fix#1 (9.0.0.1-b47)
      == EDITION: Enterprise (Trial License)
      == NOTICE: This license restricts the number of allowed clients.
      == Max. Number of Clients: 5
      ==========================================================
      [2025.06.19 15:00:20][2] [launcher-1] [SERVER-0201] Successfully connected to the JEUS Master Server(localhost:9736).
      [2025.06.19 15:00:20][2] [launcher-1] [Launcher-0058] All local configurations are up-to-date.
      [2025.06.19 15:00:20][1] [launcher-1] [Config-0157] SecurityDomainsConfigServiceProvider is jeus.service.descriptor.SecurityDomainsDescriptorFile.
      [2025.06.19 15:00:21][1] [launcher-1] [Config-0153] DomainConfigServiceProvider is jeus.service.descriptor.JEUSDomainDescriptorFile.
      This license is not appropriate for product runtime mode. Replace the license with an appropriate one.
      [2025.06.19 15:00:21][2] [launcher-1] [Launcher-0012] Starting the server [server2] with the command
       C:\Program Files\Java\jdk-17.0.6\bin\java -Dserver2 -Djeus.io.buffer.size-per-pool=81920 -Djeus.cdi.enabled=false -Djeus.jms.server.manager.produce-wait-strategy-type=blocking -Djeus.servlet.sortWebinfLibraries=name_asc -server -Xbootclasspath/a:C:\TmaxSoft\JEUS9\lib\system\extension.jar --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.security=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.base/sun.security.util=ALL-UNNAMED --add-exports=java.base/sun.net.www.protocol.jar=ALL-UNNAMED --add-exports=java.base/sun.nio.cs=ALL-UNNAMED --add-exports=java.base/sun.reflect.misc=ALL-UNNAMED --add-exports=java.base/sun.security.util=ALL-UNNAMED --add-exports=java.rmi/sun.rmi.server=ALL-UNNAMED --add-exports=java.xml/com.sun.org.apache.xerces.internal.jaxp=ALL-UNNAMED --add-exports=java.xml/com.sun.org.apache.xerces.internal.parsers=ALL-UNNAMED --add-exports=java.xml/com.sun.org.apache.xml.internal.serialize=ALL-UNNAMED --add-exports=java.xml/com.sun.org.apache.xerces.internal.dom=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-exports=java.xml/com.sun.org.apache.xerces.internal.util=ALL-UNNAMED -classpath C:\TmaxSoft\JEUS9\lib\system\bootstrap.jar -Djava.security.policy=C:\TmaxSoft\JEUS9\domains\jeus_domain\config\security\policy -Djava.library.path=C:\TmaxSoft\JEUS9\lib\system -Djeus.properties.replicate=jeus,java.util.logging,sun.rmi.dgc,java.net -Djeus.server.home=C:\TmaxSoft\JEUS9\domains\jeus_domain\servers\server2 -Djeus.server.name=server2 -Djava.util.logging.config.file=C:\TmaxSoft\JEUS9\bin\logging.properties -Dsun.rmi.dgc.server.gcInterval=3600000 -Djava.util.logging.manager=jeus.util.logging.JeusLogManager -Djeus.home=C:\TmaxSoft\JEUS9 -Djava.net.preferIPv4Stack=true -Djeus.tm.checkReg=true -Djeus.dispatcher.blocking=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Djeus.domain.name=jeus_domain -Djava.naming.factory.initial=jeus.jndi.JNSContextFactory -Djava.naming.factory.url.pkgs=jeus.jndi.jns.url -Djeus.server.protectmode=false -Djeus.master.port=9736 -Djeus.master.host=192.168.20.138 -Djeus.master.protocol=http -XX:+UnlockDiagnosticVMOptions -XX:+LogVMOutput -XX:LogFile=C:\TmaxSoft\JEUS9\domains\jeus_domain\servers\server2\logs\jvm.log jeus.server.ServerBootstrapper -domain jeus_domain -server server2 -u administrator -verbose -masterurl 192.168.20.138:9736 .
      [2025.06.19 15:00:21][2] [launcher-1] [Launcher-0014] The server[server2] is being started ...
      [2025.06.19 15:00:21][1] [server2-1] [Config-0153] DomainConfigServiceProvider is jeus.service.descriptor.JEUSDomainDescriptorFile.
      [2025.06.19 15:00:21][1] [server2-1] [Config-0157] SecurityDomainsConfigServiceProvider is jeus.service.descriptor.SecurityDomainsDescriptorFile.
      [2025.06.19 15:00:21][2] [server2-1] [SERVER-0248] The JEUS server is STARTING.
      [2025.06.19 15:00:21][0] [server2-1] [SERVER-0000] Version information - JEUS 9 Fix#1 (9.0.0.1-b47).
      
      ... 중략
      
      [2025.06.19 15:00:22][2] [server2-50] [WEB-3484] ServletContext[name=healthcheck, path=/health, ctime=Thu Jun 19 15:00:22 KST 2025, apptime=1682326357716, index=1682326357716] started successfully.
      [2025.06.19 15:00:22][2] [server2-50] [Deploy-0099] Successfully started the application[healthcheck, 1682326357716].
      [2025.06.19 15:00:22][0] [server2-1] [SERVER-0242] Successfully started the server.
      [2025.06.19 15:00:22][2] [server2-1] [SERVER-0248] The JEUS server is RUNNING.
      [2025.06.19 15:00:22][2] [server2-1] [SERVER-0401] The elapsed time to start: 3626ms.
      [2025.06.19 15:00:22][2] [launcher-14] [Launcher-0034] The server[server2] initialization completed successfully[pid : 792].
      [2025.06.19 15:00:22][0] [launcher-1] [Launcher-0040] Successfully started the server[server2]. The server state is now RUNNING.
      1. “Invalid License” 메시지가 나타나면 라이선스가 잘못된 것이다. TmaxSoft로부터 라이선스를 취득하여 $JEUS_HOME/license 디렉터리에 복사한다.

      2. 모든 단계들의 진행과 환경변수가 정확히 설정되어 있는지 확인한다. 특히, /jeus/bin 디렉터리가 시스템 경로(startManagedServer 스크립트가 실행될 수 있도록)에 있는 것을 확인한다.

  3. JEUS의 관리 콘솔에 접속하기 위해 다른 콘솔 창에서 jeusadmin 명령어를 실행한다. 일반적으로 관리자의 계정은 'administrator’이고 패스워드는 JEUS를 설치할 때 입력한 값이다.

    C:\TmaxSoft\JEUS9> jeusadmin -u administrator -p <password>
    Attempting to connect to 127.0.0.1:9736.
    The connection has been established to JEUS Master Server [adminServer] in the domain [jeus_domain].
    JEUS 9 Administration Tool
    To view help, use the 'help' command.
    [MASTER]jeus_domain.adminServer>
  4. 잠시 후 프롬프트가 다시 뜨면 JEUS가 제대로 기동되었고, 다시 명령어를 받을 수 있는 상태가 되었다는 것을 나타낸다.

  5. JEUS의 관리를 하는 WebAdmin에 접속하기 위해 웹 브라우저를 열어서 주소 창에 다음의 주소를 입력한다.

    http://localhost:9736/webadmin
  6. JEUS 관리자의 계정과 패스워드를 입력하고 [Login] 버튼을 클릭한다. 일반적으로 관리자의 계정은 'administrator’이고 패스워드는 JEUS를 설치할 때 입력한 값이다.

    figure login
    WebAdmin 로그인 화면
  7. WebAdmin을 통해서 JEUS를 관리할 수 있다.

    figure home
    WebAdmin 메인 화면
  8. 콘솔에서 jeusadmin 툴에 로그인을 한 후에 local-start-serverlocal-shutdown 명령어로 JEUS 서버를 제어할 수 있다. JEUS 서버를 다운시키려면 local-shutdown 명령어를 실행한다.

    [MASTER]jeus_domain.adminServer>local-shutdown
    Executing this command affects the service. Do you want to continue? (y/n)y
    The server [adminServer] has been shut down successfully.
  9. jeusadmin을 종료하기 위해서 exit 명령어를 실행한다.

    offline>exit

4. 서비스 등록과 제거

JEUS는 Windows 운영체제에서 서비스로 동작할 수 있도록 설계되었다. 이 기능을 사용하려면 JEUS 폴더에 있는 서비스를 실행한다. 본 절에서는 Windows NT 서비스로 동작하도록 JEUS를 등록, 제거하는 과정에 대해 설명한다.

4.1. 서비스 등록

다음은 Windows 서비스를 등록하는 과정에 대한 설명이다.

  1. svcinstall.exe가 위치한 %JEUS_HOME% 아래 bin 디렉터리로 이동한다. (기본: C:\TmaxSoft\JEUS9\bin)

  2. svcinstall.exe를 실행해서 JEUS를 Windows에 서비스로 등록한다.

    svcinstall <jeus.ini> <id> <password>

    %JEUS_HOME%\bin 아래 <jeus.ini> 파일은 JEUS를 Windows NT 서비스로 실행할 때 사용되는 설정 파일이다. 서비스명으로 jeus.ini 파일명(jeus라는 이름으로 등록)이 설정된다. 이 파일에는 JEUS_HOME, JAVA_HOME 등의 설정 정보가 저장된다. 서비스 설정 파일에 대한 자세한 내용은 Windows 서비스 설정을 참고한다.

    다음은 svcinstall 명령어 사용에 대한 예이다.

    C:\TmaxSoft\JEUS9\bin>svcinstall jeus.ini administrator <password>
    ...
    JEUS Service[jeusservice-jeus] installed

4.2. 서비스 등록 확인

서비스 등록에 대해서는 다음과 같이 2가지 방법으로 확인이 가능하다.

  • GUI 모드에서 등록 확인

    Windows에서 [시작] > [설정] > [제어판] > [관리 도구] > [서비스] 메뉴를 클릭하면 서비스 화면에서 JEUS 서비스가 존재하는지 확인할 수 있다.

  • 명령 프롬프트에서 등록 확인

    서비스를 확인하려면 명령 프롬프트에서 다음과 같이 입력한다.

    svcremove -list

    다음은 서비스를 확인하는 예제이다.

    C:\TmaxSoft\JEUS9\bin>svcremove -list
    
    ** JEUS Services **
    ----------------------------
    - jeus
    
    Total count: 1

    결과 메시지에서 Windows 서비스가 총 1개 등록되어 있음을 확인할 수 있다.

4.3. 서비스 재시작

Windows에서 [시작] > [설정] > [제어판] > [관리 도구] > [서비스]를 선택한 후 서비스 화면에서 재시작할 '서비스명'(기본값 : JEUS9 Windows service)을 더블클릭하면 [시작], [중지], [일시 중지], [계속] 버튼이 나타난다. 서비스를 재시작하려면 [중지] 버튼을 클릭해서 서비스를 중지한 후 [시작] 버튼을 클릭해서 서비스를 다시 시작한다. 서비스를 다시 시작하면 설치 파일에 등록된 엔진과 기타 컴포넌트가 로딩된다.

계정 정보를 수정한 경우 새로운 계정으로 Master를 재기동해서 Node Manager의 계정 정보를 업데이트하고, Windows 서비스도 재시작해서 Node Manager에 저장된 계정 정보를 새로 업데이트해야 한다.

4.4. 서비스 제거

서비스를 중지하려면 Windows에서 [시작] >[ 설정] > [제어판] > [관리 도구] > [서비스]를 선택하고 [중지] 버튼을 클릭하여 서비스를 중단한다.

서비스를 영구히 제거하려면 %JEUS_HOME%\bin 디렉터리의 svcremove.exe를 실행한다. 인자로 서비스명을 사용한다.

C:\TmaxSoft\JEUS9\bin> svcremove.exe jeus
...
Removing windows service 'jeus'...
Successfully done.

5. 제거

다음은 JEUS를 제거하는 과정이다.

  1. startMasterServer, startManagedServer 스크립트와 WebAdmin 등의 모든 JEUS 프로그램들을 종료한다.

  2. JEUS 홈 디렉터리의 UninstallerData\JEUS9 디렉터리에서 Uninstall.exe를 실행하거나(예: C:\TmaxSoft\JEUS9\UninstallerData\JEUS9), Windows 메뉴의 [시작] > [프로그램] > [TmaxSoft] > [JEUS9] > [Uninstall]을 선택한다.

  3. 다음과 같이 설치제거 초기 화면이 나타난다.

    figure Uninstall
    Windows에서 제거 - 설치제거 초기 화면
  4. 제거 화면의 메시지를 읽고 JEUS 제거 준비가 되었다면 [Uninstall] 버튼을 클릭한다. JEUS를 제거하지 않고 프로그램을 종료하려면 [Cancel] 버튼을 클릭한다.

  5. Windows 서비스 삭제 선택 화면이 나타난다. 서비스 삭제는 Windows용 설치 파일에만 나타난다.

    figure remove windowservice
    Windows에서 제거 - 서비스 삭제 여부 선택 화면
  6. Uninstall JEUS 화면에서 JEUS 제거의 진행을 확인할 수 있다.

    figure Uninstalling
    Windows에서 제거 - Uninstall JEUS
  7. Unlinstall Complete 화면이 나타날 때까지 기다린다.

    figure Uninstall Complete
    Windows에서 제거 - Unlinstall Complete

    JEUS 설치 후에 생성된 파일들은 Uninstaller로 제거되지 않는다. 이 파일들은 그대로 두거나, 수동으로 삭제한다.

  8. [Done] 버튼을 클릭하여 JEUS Uninstaller를 종료한다.

  9. 제거된 사항의 적용을 위하여 컴퓨터를 재기동하거나 또는 로그오프 후 다시 로그인한다.

5.1. 제거 확인

정상적으로 제거되었는지 다음 방법으로 확인한다.

  • 파일과 디렉터리

    %JEUS_HOME% 디렉터리(기본값: C:\TmaxSoft\JEUS9) 하위의 파일과 폴더가 제거되었는지 확인한다. JEUS가 설치된 후 생성된 파일은 삭제되지 않으므로 해당 파일은 수동으로 삭제해야 한다.

  • Shortcuts

    설치하는 동안에 생성된 '바로가기'(프로그램 메뉴의 항목과 같은)가 제거되었는지 확인한다.

  • 환경변수

    다음 환경변수들이 제거되었는지를 확인하고, 만약 필요하다면 Windows 메뉴의 [시작] > [설정] > [제어판] > [시스템] > [고급] > [환경변수]에서 수동으로 제거한다. Windows 명령 프롬프트에 set 명령어로 변수들을 확인할 수 있다. 만약 JEUS를 제거한 후에 컴퓨터를 재부팅했다면 갱신되어 있어야 한다.

  • PATH

    시스템 PATH에서 JEUS 경로는 사라진다(예: C:\TmaxSoft\JEUS9).