Red Hat JBoss Enterprise Application Platform 시작하기

Red Hat JBoss Enterprise Application Platform 8.0

Red Hat JBoss Enterprise Application Platform으로 신속하게 가동 및 실행 가능. 기본 설치, 관리 및 구성과 같은 관리 작업을 알아봅니다. JBoss EAP 빠른 시작을 사용하여 Jakarta EE 애플리케이션 작성을 시작합니다.

Red Hat Customer Content Services

초록

Red Hat JBoss Enterprise Application Platform으로 신속하게 가동 및 실행 가능. 기본 설치, 관리 및 구성과 같은 관리 작업을 알아봅니다. JBoss EAP 빠른 시작을 사용하여 자카르타 EE 애플리케이션 작성을 시작합니다.

JBoss EAP 문서에 대한 피드백 제공

오류를 보고하거나 문서를 개선하기 위해 Red Hat Jira 계정에 로그인하여 문제를 제출하십시오. Red Hat Jira 계정이 없는 경우 계정을 생성하라는 메시지가 표시됩니다.

프로세스

  1. 티켓을 생성하려면 다음 링크를 클릭하십시오.
  2. 요약 에 문제에 대한 간략한 설명을 입력합니다.
  3. 설명에서 문제 또는 개선 사항에 대한 자세한 설명을 제공합니다. 문서에서 문제가 발생한 위치에 URL을 포함합니다.
  4. Submit 을 클릭하고 문제를 적절한 문서 팀으로 라우팅합니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 용어를 교체하기 위해 최선을 다하고 있습니다. 먼저 마스터(master), 슬레이브(slave), 블랙리스트(blacklist), 화이트리스트(whitelist) 등 네 가지 용어를 교체하고 있습니다. 이러한 변경 사항은 향후 릴리스에 걸쳐 점진적으로 구현될 예정입니다. 언어를 보다 포괄적으로 만드는 방법에 대한 자세한 내용은 CTO Chris Wright의 메시지를 참조하십시오.

1장. JBoss EAP 관리

1.1. JBoss EAP 다운로드 및 설치

.zip 파일 옵션은 JBoss EAP를 다운로드하고 설치하는 빠른 플랫폼 독립적인 방법입니다.

1.1.1. JBoss EAP 다운로드

JBoss EAP를 설치하려면 먼저 JBoss EAP .zip 파일을 다운로드해야 합니다.

사전 요구 사항

  • 시스템이 JBoss EAP 지원 구성 을 충족하는지 확인합니다.
  • 최신 업데이트 및 에라타 패치를 설치합니다.
  • 설치 디렉터리에 대한 읽기 및 쓰기 액세스를 설정합니다.
  • 원하는 JDK(Java Development Kit)를 설치합니다.
  • 선택 사항: JAVA_HOMEPATH 환경 변수를 설정합니다.

프로세스

  1. Red Hat 고객 포털에 로그인합니다.
  2. 다운로드를 클릭합니다.
  3. 제품 다운로드 목록에서 Red Hat JBoss Enterprise Application Platform 을 클릭합니다.
  4. 버전 드롭다운 메뉴에서 8.0 을 선택합니다.
  5. 목록에서 Red Hat JBoss Enterprise Application Platform 8.0 을 찾아 다운로드 링크를 클릭합니다.

    '.zip' 파일이 시스템에 다운로드됩니다.

추가 리소스

1.1.2. JBoss EAP 설치

원하는 파일 위치로 패키지 콘텐츠를 추출하여 JBoss EAP .zip 파일을 설치할 수 있습니다.

사전 요구 사항

  • JBoss EAP를 다운로드합니다.
  • 시스템이 JBoss EAP 지원 구성 을 충족하는지 확인합니다.
  • 최신 업데이트 및 에라타 패치를 설치합니다.
  • 설치 디렉터리에 대한 읽기 및 쓰기 액세스를 설정합니다.
  • 원하는 JDK(Java Development Kit)를 설치합니다.
  • 선택 사항: JAVA_HOMEPATH 환경 변수를 설정합니다.

프로세스

  1. JBoss EAP를 설치할 서버 및 위치로 .zip 파일을 이동합니다.
  2. .zip 파일을 추출합니다.

    1. Linux에서 다음 명령을 사용합니다.

      $ unzip jboss-eap-8.0.0.zip
    2. Windows Server에서 .zip 파일을 마우스 오른쪽 버튼으로 클릭하고 Extract All 을 선택합니다.

      .zip 파일을 추출하여 생성된 디렉터리는 JBoss EAP 설치의 최상위 디렉토리입니다. 이 디렉터리를 EAP_HOME 이라고 합니다.

1.2. JBoss EAP 시작 및 중지

JBoss EAP를 시작하는 방법은 JBoss EAP를 독립 실행형 서버로 실행하는지 또는 관리형 도메인의 서버에서 실행 중인지에 따라 달라집니다.

JBoss EAP를 중지하는 방법은 JBoss EAP의 대화형 또는 백그라운드 인스턴스를 실행 중인지에 따라 다릅니다.

1.2.1. JBoss EAP를 독립 실행형 서버로 시작

JBoss EAP를 독립 실행형 서버로 실행하여 JBoss EAP의 단일 인스턴스를 관리할 수 있습니다.

서버는 일시 중지된 상태로 시작되고 필요한 모든 서비스가 시작될 때까지 요청을 수락하지 않습니다. 필수 서비스가 시작되면 서버가 일반 실행 상태로 전환되고 요청을 수락할 수 있습니다.

이 시작 스크립트는 EAP_HOME/bin/standalone.conf 파일 또는 Windows Server의 standalone.conf. skip를 사용하여 JVM 옵션과 같은 기본 설정을 설정합니다. 이 파일에서 설정을 사용자 지정할 수 있습니다.

참고

터미널에서 시작 스크립트 인수 목록을 보려면 --help 인수를 사용합니다.

JBoss EAP는 기본적으로 standalone.xml 구성 파일을 사용하지만 다른 파일을 사용하여 시작할 수 있습니다.

사전 요구 사항

  • JBoss EAP를 설치합니다.

프로세스

  1. 터미널을 엽니다.
  2. 다음 스크립트를 사용하여 JBoss EAP를 독립 실행형 서버로 시작합니다.

    $ EAP_HOME/bin/standalone.sh
    1. Windows Server의 경우 EAP_HOME\bin\standalone.extension 스크립트를 사용합니다.

1.2.2. 관리형 도메인에서 서버용 JBoss EAP 시작

관리형 도메인 운영 모드에서 JBoss EAP를 실행하여 단일 도메인 컨트롤러를 사용하여 여러 JBoss EAP 인스턴스를 관리할 수 있습니다.

서버는 일시 중단된 상태로 시작하고 필요한 모든 서비스가 시작될 때까지 요청을 수락하지 않습니다. 필수 서비스가 시작되면 서버는 일반 실행 상태로 전환되고 요청을 수락하기 시작합니다.

도메인의 서버 그룹보다 먼저 도메인 컨트롤러를 시작해야 합니다.

사전 요구 사항

  • JBoss EAP를 설치합니다.

프로세스

  1. 터미널을 엽니다.
  2. 먼저 도메인 컨트롤러를 시작한 다음 다음 스크립트를 사용하여 연결된 각 호스트 컨트롤러를 시작합니다.

    $ EAP_HOME/bin/domain.sh
    • Windows Server의 경우 EAP_HOME\bin\domain.#159 스크립트를 사용합니다.

이 시작 스크립트는 EAP_HOME/bin/domain.conf 파일 또는 Windows Server의 경우 domain.conf. #159를 사용하여 JVM 옵션과 같은 기본 기본 설정을 설정합니다. 이 파일에서 설정을 사용자 지정할 수 있습니다.

JBoss EAP는 기본적으로 host.xml 호스트 구성 파일을 사용하지만 다른 구성 파일을 사용하여 시작할 수 있습니다.

관리형 도메인을 설정할 때 시작 스크립트에 추가 인수를 전달해야 합니다.

참고

사용 가능한 모든 시작 스크립트 인수의 전체 목록을 보려면 --help 인수를 사용합니다.

1.2.3. JBoss EAP의 대화형 인스턴스 중지

독립 실행형 서버의 대화형 인스턴스 또는 도메인 컨트롤러를 시작한 터미널에서 중지할 수 있습니다.

사전 요구 사항

  • 실행 중인 JBoss EAP 인스턴스가 있어야 합니다.

프로세스

  • JBoss EAP를 시작한 터미널에서 Ctrl+C 를 누릅니다.

1.2.4. JBoss EAP의 백그라운드 인스턴스 중지

관리 CLI에 연결하여 관리형 도메인에서 독립 실행형 서버 또는 서버의 실행 중인 인스턴스를 종료할 수 있습니다.

사전 요구 사항

  • 터미널에서 실행 중인 JBoss EAP 인스턴스가 있어야 합니다.

프로세스

  1. 다음 스크립트를 사용하여 관리 CLI를 시작합니다.

    $ EAP_HOME/bin/jboss-cli.sh --connect
  2. shutdown 명령을 실행합니다.

    shutdown

관리형 도메인의 서버에서 JBoss EAP의 인스턴스를 실행하는 경우 shutdown 명령과 함께 --host 인수를 사용하여 종료할 호스트 이름을 지정해야 합니다.

1.3. JBoss EAP 관리

명령줄 관리 CLI, 웹 기반 관리 콘솔, Java API 또는 HTTP API를 사용하여 JBoss EAP를 구성할 수 있습니다. 이러한 관리 인터페이스를 사용하여 변경한 내용은 자동으로 유지되며 관리 API는 XML 구성 파일을 덮어씁니다. 관리 CLI 및 관리 콘솔은 기본 방법이며 XML 구성 파일을 수동으로 편집하지 않는 것이 좋습니다.

JBoss EAP는 관리형 도메인의 독립 실행형 서버 또는 서버당 하나의 구성 파일을 사용하여 단순화된 구성을 사용합니다.

  • 독립 실행형 서버에 대한 기본 구성은 EAP_HOME/standalone/configuration/standalone.xml 파일에 저장됩니다.
  • 관리형 도메인의 서버에 대한 기본 구성은 EAP_HOME/domain/configuration/domain.xml 파일에 저장됩니다.
  • 호스트 컨트롤러에 대한 기본 구성은 EAP_HOME/domain/configuration/host.xml 파일에 저장됩니다.

1.3.1. 관리 사용자

관리 CLI에 원격으로 액세스하거나 로컬 호스트에서 트래픽이 시작된 경우에도 원격 액세스로 간주되는 관리 콘솔을 사용하려면 관리 사용자를 추가해야 합니다. 관리 사용자를 추가하기 전에 관리 콘솔에 액세스하려고 하면 오류 메시지가 표시됩니다.

기본 JBoss EAP 구성은 사용자가 인증하지 않고도 로컬 호스트의 관리 CLI에 액세스할 수 있도록 로컬 인증을 제공합니다.

그래픽 설치 프로그램을 사용하여 JBoss EAP를 설치하는 경우 그래픽 설치 프로그램은 설치 프로세스 중에 관리 사용자를 생성합니다.

1.3.2. 관리 사용자 추가

즉시 인증을 위해 새 사용자를 속성 파일에 추가하는 유틸리티인 add-user 스크립트를 사용하여 JBoss EAP에 대한 관리 사용자를 추가할 수 있습니다.

사전 요구 사항

  • JBoss EAP를 설치했습니다.

프로세스

  1. 관리 CLI를 시작합니다.
  2. add-user 유틸리티 스크립트를 실행하고 프롬프트를 따릅니다.

    $ EAP_HOME/bin/add-user.sh
    • Windows Server의 경우 EAP_HOME\bin\add-user.extension 스크립트를 사용합니다.
  3. Enter를 눌러 기본 옵션 a 를 선택하여 관리 사용자를 추가합니다.

    그러면 사용자가 ManagementRealm 에 추가되고 관리 콘솔 또는 관리 CLI를 사용하여 관리 작업을 수행할 수 있도록 사용자에게 권한을 부여합니다. 다른 선택 사항인 b 는 애플리케이션에 사용되며 특정 권한을 제공하지 않는 ApplicationRealm 에 사용자를 추가합니다.

  4. 사용자 이름과 암호를 입력합니다. 메시지가 표시되면 암호를 확인해야 합니다.

    참고

    사용자 이름은 임의의 숫자 및 순서로 다음 문자만 포함할 수 있습니다.

    • 영숫자 (a-z, A-Z, 0-9)
    • 대시(-), 마침표(.), 쉼표(,), at sign(@)
    • 백슬래시(\)
    • 동일 (=)

    기본적으로 JBoss EAP는 약한 암호를 허용하지만 경고와 함께 사용할 수 있습니다.

  5. 사용자가 속한 쉼표로 구분된 그룹 목록을 입력합니다. 사용자가 그룹에 속하지 않도록 하려면 Enter 키를 눌러 비워 둡니다.
  6. 정보를 검토하고 yes 를 입력하여 확인합니다.
  7. 이 사용자가 원격 JBoss EAP 서버 인스턴스를 나타내는지 확인합니다. 기본 관리 사용자의 경우 no 를 입력합니다.

    도메인 컨트롤러에 연결해야 하는 호스트 컨트롤러를 나타내는 ManagementRealm 에 사용자를 추가하는 경우 이 프롬프트에 yes 로 응답합니다. 호스트 컨트롤러의 host*.xml 파일에 추가해야 하는 사용자 암호를 나타내는 인코딩된 시크릿 값이 제공됩니다.

매개 변수를 add-user 스크립트에 전달하여 비대화형으로 사용자를 생성할 수 있습니다. 이 접근 방식은 로그 및 기록 파일에 암호가 표시되므로 공유 시스템에서 권장되지 않습니다.

1.3.3. 비대화형으로 추가 사용자 유틸리티 실행

명령줄에서 인수를 전달하여 add-user 스크립트를 비대화형으로 실행할 수 있습니다. 최소한 사용자 이름과 암호를 제공해야 합니다.

주의

이 방법은 암호는 로그 및 기록 파일에 표시되므로 공유 시스템에서 권장되지 않습니다.

여러 그룹에 속하는 사용자 생성

다음 명령은 guestmgmtgroup 그룹과 함께 관리 사용자 mgmtuser1 을 추가합니다.

$ EAP_HOME/bin/add-user.sh -u 'mgmtuser1' -p 'password1!' -g 'guest,mgmtgroup'
대체 속성 파일 지정

기본적으로 add-user 스크립트를 사용하여 생성된 사용자 및 그룹 정보는 서버 구성 디렉터리에 있는 속성 파일에 저장됩니다.

사용자 정보는 다음 속성 파일에 저장됩니다.

  • EAP_HOME/standalone/configuration/mgmt-users.properties
  • EAP_HOME/domain/configuration/mgmt-users.properties

그룹 정보는 다음 속성 파일에 저장됩니다.

  • EAP_HOME/standalone/configuration/mgmt-groups.properties
  • EAP_HOME/domain/configuration/mgmt-groups.properties

다음 명령은 사용자 속성 파일에 다른 이름과 위치를 지정하는 새 사용자를 추가합니다.

$ EAP_HOME/bin/add-user.sh -u 'mgmtuser2' -p 'password1!' -sc '/path/to/standaloneconfig/' -dc '/path/to/domainconfig/' -up 'newname.properties'

새 사용자가 /path/to /standaloneconfig/newname.properties/path/to/ domainconfig/newname.properties 에있는 사용자 속성 파일에 추가되었습니다. 이러한 파일이 이미 존재하거나 오류가 표시됩니다.

참고

사용 가능한 모든 add-user 인수의 전체 목록을 보려면 --help 인수를 사용합니다.

추가 리소스

1.3.4. 관리 CLI

관리 CLI(명령줄 인터페이스)는 JBoss EAP의 명령줄 관리 툴입니다.

관리 CLI를 사용하여 서버를 시작 및 중지하고, 애플리케이션을 배포 및 제거하고, 시스템 설정을 구성하고, 기타 관리 작업을 수행합니다. 배치 모드에서 작업을 수행하여 여러 작업을 그룹으로 실행할 수 있습니다.

ls (list), cd (change directory), pwd (프린트 작업 디렉터리)와 같은 많은 일반적인 터미널 명령을 사용할 수 있습니다. 관리 CLI는 탭 완료도 지원합니다.

관리 CLI 시작
$ EAP_HOME/bin/jboss-cli.sh
참고

Windows Server의 경우 EAP_HOME\bin\jboss-cli.extension 스크립트를 사용합니다.

실행 중인 서버에 연결
connect

관리 CLI를 시작하고 EAP_HOME/bin/jboss-cli.sh --connect 명령을 사용하여 한 단계로 연결할 수 있습니다.

도움말 표시

일반적인 도움말을 위해 다음 명령을 사용하십시오.

help

명령에 --help 플래그를 사용하여 해당 특정 명령을 사용하는 방법에 대한 지침을 받습니다. 예를 들어 deploy 사용에 대한 정보를 받으려면 다음 명령을 사용합니다.

deploy --help
관리 CLI 종료

관리 CLI를 종료하려면 다음 명령을 사용합니다.

quit
시스템 설정 보기

다음 명령은 read-attribute 작업을 사용하여 예제 데이터 소스가 활성화되었는지 여부를 표시합니다.

/subsystem=datasources/data-source=ExampleDS:read-attribute(name=enabled)
{
    "outcome" => "success",
    "result" => true
}

관리형 도메인에서 서버를 실행하는 경우 명령 앞에 /profile=PROFILE_NAME 을 사용하여 업데이트할 프로필을 지정해야 합니다.

/profile=default/subsystem=datasources/data-source=ExampleDS:read-attribute(name=enabled)
하위 시스템 구성 보기

다음 명령은 read-resource-description 작업을 사용하여 리소스가 필요한지 여부, 속성 교체 등을 포함하는 지정된 하위 시스템 구성에 대한 설명을 표시합니다.

/subsystem=datasources:read-resource-description(recursive=true)
시스템 설정 업데이트

다음 명령은 write-attribute 작업을 사용하여 예제 데이터 소스를 비활성화합니다.

/subsystem=datasources/data-source=ExampleDS:write-attribute(name=enabled,value=false)
서버 시작

관리형 도메인에서 실행할 때 다음 명령을 사용하여 서버를 시작하고 중지합니다.

/host=HOST_NAME/server-config=server-one:start

1.3.5. 관리 콘솔

관리 콘솔은 JBoss EAP를 위한 웹 기반 관리 툴입니다.

관리 콘솔을 사용하여 서버를 시작 및 중지하고, 애플리케이션을 배포 및 제거하고, 시스템 설정을 조정하며, 서버 구성을 영구적으로 수정합니다. 관리 콘솔은 사용자가 서버를 다시 시작하거나 다시 로드해야 하는 변경을 수행할 때 실시간 알림을 사용하여 관리 작업을 수행할 수도 있습니다.

관리형 도메인에서 동일한 도메인의 서버 인스턴스 및 서버 그룹은 도메인 컨트롤러의 관리 콘솔에서 중앙 집중식으로 관리됩니다.

기본 관리 포트를 사용하여 로컬 호스트에서 실행되는 JBoss EAP 인스턴스의 경우 http://localhost:9990/console/index.html 에서 웹 브라우저를 통해 관리 콘솔에 액세스할 수 있습니다. 관리 콘솔에 액세스할 수 있는 권한이 있는 사용자 역할로 인증해야 합니다.

관리 콘솔은 JBoss EAP 독립 실행형 서버 또는 관리형 도메인을 탐색하고 관리하기 위한 다음 탭을 제공합니다.

몇 가지 일반적인 구성 및 관리 작업을 수행하는 방법을 알아봅니다. JBoss EAP 관리 콘솔에 익숙해지려면 둘러보기를 확인하십시오.
배포
배포를 추가, 제거 및 활성화합니다. 관리형 도메인에서 서버 그룹에 배포를 할당합니다.
설정
웹 서비스, 메시징 또는 고가용성과 같은 기능을 제공하는 사용 가능한 하위 시스템을 구성합니다. 관리형 도메인에서 다른 하위 시스템 구성이 포함된 프로필을 관리합니다.
런타임
서버 상태, JVM 사용량 및 서버 로그와 같은 런타임 정보를 확인합니다. 관리형 도메인에서 호스트, 서버 그룹 및 서버를 관리합니다.
패치
JBoss EAP 인스턴스에 패치를 적용합니다.
액세스 제어
역할 기반 액세스 제어를 사용할 때 사용자 및 그룹에 역할을 할당합니다.

1.3.5.1. 관리 콘솔에서 리소스 속성 업데이트

필요한 권한이 있는 경우 관리 콘솔에서 리소스 속성을 편집할 수 있습니다.

사전 요구 사항

  • JBoss EAP가 실행 중입니다.
  • 선택한 리소스를 수정할 수 있는 적절한 권한이 있습니다.
  • 사용자를 생성했습니다.

프로세스

  1. 관리 콘솔에 로그인합니다. 기본 포트에서 실행되는 로컬 서버의 경우 http://localhost:9990/console/index.html 에서 관리 콘솔에 액세스할 수 있습니다.
  2. 수정할 리소스에 대한 관리 콘솔의 적절한 섹션으로 이동합니다.
  3. 편집을 클릭합니다.
  4. 필요한 변경을 수행합니다.

    필수 필드는 별표(*)로 표시됩니다. 도움말 을 클릭하여 속성 설명을 볼 수 있습니다.

    참고

    특성 유형에 따라 입력 필드는 텍스트 필드, ON/OFF 필드 또는 드롭다운일 수 있습니다. 일부 텍스트 필드에서 를 입력하면 구성의 다른 위치에서의 값이 제안 사항으로 표시될 수 있습니다.

  5. 저장을 클릭합니다.
  6. 필요한 경우 변경 사항을 적용하려면 서버를 다시 로드합니다.

    적용하기 위해 다시 로드해야 하는 변경을 수행할 때 팝업 창이 열립니다. 독립 실행형 서버를 다시 로드하려면 팝업 창에서 다시 로드 를 클릭합니다. 관리형 도메인에서 서버를 다시 로드하려면 토폴로지 를 클릭하고 적절한 서버를 선택한 다음 드롭다운 목록에서 다시 로드 를 선택합니다.

수행한 최근 구성 작업의 기록을 보려면 알림 아이콘을 클릭합니다.

1.3.5.2. 관리 콘솔 활성화 또는 비활성화

/core-service=management/management-interface=http-interface 리소스의 console-enabled 부울 속성을 설정하여 관리 콘솔을 활성화하거나 비활성화할 수 있습니다. 도메인 모드의 마스터 호스트의 경우 /host=master/core-service=management/management-interface=http-interface 를 사용합니다.

참고

관리 콘솔을 활성화하거나 비활성화한 후에는 JBoss EAP 인스턴스를 다시 시작하거나 다시 로드해야 합니다.

관리 콘솔 활성화 예

/core-service=management/management-interface=http-interface:write-attribute(name=console-enabled,value=true)

관리 콘솔 예

/core-service=management/management-interface=http-interface:write-attribute(name=console-enabled,value=false)

1.3.5.3. 관리 콘솔의 언어 변경

기본적으로 관리 콘솔의 언어 설정은 영어입니다. 대신 다음 언어 중 하나를 사용하도록 선택할 수 있습니다.

  • 독일어(de)
  • 중국어 간체 (zh-Hans)
  • 브라질 포르투갈어 (pt-BR)
  • 프랑스어(fr)
  • 스페인어 (es)
  • 일본어 (ja)

사전 요구 사항

  • JBoss EAP가 실행 중입니다.
  • 사용자를 생성했습니다.

프로세스

  1. 관리 콘솔에 로그인합니다. 기본 포트에서 실행되는 로컬 서버의 경우 http://localhost:9990/console/index.html 에서 관리 콘솔에 액세스할 수 있습니다.
  2. 설정을 클릭합니다.
  3. Locale 목록에서 필요한 언어를 선택합니다.
  4. 저장을 클릭합니다. 확인 상자에 애플리케이션을 다시 로드해야 함을 알려줍니다.
  5. 예를 클릭합니다. 선택한 로케일을 사용하도록 웹 브라우저를 자동으로 새로 고칩니다.

1.3.5.4. 관리 콘솔 제목 사용자 정의

각 JBoss EAP 인스턴스를 빠르고 쉽게 식별할 수 있도록 관리 콘솔 제목을 사용자 지정할 수 있습니다.

사전 요구 사항

  • JBoss EAP가 실행 중입니다.
  • 사용자를 생성했습니다.

프로세스

  1. 관리 콘솔에 로그인합니다. 기본 포트에서 실행되는 로컬 서버의 경우 http://localhost:9990/console/index.html 에서 관리 콘솔에 액세스할 수 있습니다.
  2. 설정을 클릭하고 제목 필드의 제목 을 수정합니다.
  3. 저장을 클릭합니다.

    확인 상자에 관리 콘솔을 다시 로드해야 함을 알려줍니다.

  4. 예를 클릭합니다.

    시스템이 웹 브라우저를 자동으로 새로 고치고 새 제목이 탭 헤더에 표시됩니다.

1.3.6. 독립 실행형 서버 구성 파일

독립 실행형 구성 파일은 EAP_HOME/standalone/configuration/ 디렉터리에 있습니다. 사전 정의된 5개의 프로필(기본값, ha, full ,full -ha ,load-balancer) 각각에 대해 별도의 파일이 있습니다. 다음은 JBoss EAP를 시작할 때 관리 CLI를 사용하여 수정할 수 있는 구성 파일의 예입니다.

표 1.1. 독립 실행형 구성 파일

구성 파일목적

standalone.xml

이 독립 실행형 구성 파일은 독립 실행형 서버를 시작할 때 JBoss EAP에서 사용하는 기본 구성입니다. 이 구성은 Jakarta EE 웹 및 코어 프로필에 해당하며 하위 시스템, 네트워킹, 배포, 소켓 바인딩 및 기타 구성 가능한 세부 정보를 포함하여 서버에 대한 모든 정보를 포함합니다. 이 구성은 메시징 또는 고가용성에 필요한 하위 시스템을 제공하지 않습니다.

standalone-ha.xml

이 독립 실행형 구성 파일에는 모든 기본 하위 시스템이 포함되어 있으며 고가용성을 위해 modclusterjgroups 하위 시스템을 추가합니다. 메시징에 필요한 하위 시스템을 제공하지 않습니다.

standalone-full.xml

이 독립 실행형 구성 파일에는 모든 기본 하위 시스템이 포함되어 있으며 messaging-activemqiiop-openjdk 하위 시스템을 추가합니다. 자카르타 EE 전체 프로필에 해당하며 고가용성에 필요한 하위 시스템을 제공하지 않습니다.

standalone-full-ha.xml

이 독립 실행형 구성 파일에는 메시징 및 고가용성을 위한 항목을 포함하여 가능한 모든 하위 시스템에 대한 지원이 포함됩니다.

standalone-load-balancer.xml

이 독립 실행형 구성 파일에는 다른 JBoss EAP 인스턴스를 로드 밸런싱하기 위해 기본 제공 mod_cluster 프런트 엔드 로드 밸런서를 사용하는 데 필요한 최소 하위 시스템이 포함되어 있습니다.

기본적으로 JBoss EAP를 독립 실행형 서버로 시작하면 standalone.xml 파일이 사용됩니다. 다른 구성으로 JBoss EAP를 시작하려면 --server-config 인수를 사용합니다. 예를 들면 다음과 같습니다.

$ EAP_HOME/bin/standalone.sh --server-config=standalone-full.xml

1.3.7. 관리형 도메인 구성 파일

관리형 도메인 구성 파일은 EAP_HOME/domain/configuration/ 디렉터리에 있습니다. 다음은 JBoss EAP를 시작할 때 관리 CLI를 사용하여 수정할 수 있는 구성 파일의 예입니다.

표 1.2. 관리형 도메인 구성 파일

구성 파일목적

domain.xml

관리형 도메인의 기본 구성 파일입니다. 도메인 마스터만 이 파일을 읽습니다. 이 파일에는 모든 프로필(기본값, ha, full ,full -ha ,load-balancer)에 대한 구성이 포함되어 있습니다.

host.xml

이 파일에는 네트워크 인터페이스, 소켓 바인딩, 호스트 이름 및 기타 호스트별 세부 정보와 같이 관리형 도메인의 물리적 호스트와 관련된 구성 세부 정보가 포함됩니다. host.xml 파일에는 이 표에 설명된 host-master.xmlhost-slave.xml 의 모든 기능이 포함되어 있습니다.

host-master.xml

이 파일에는 서버를 관리형 도메인 컨트롤러로 실행하는 데 필요한 구성 세부 정보만 포함됩니다. host-master.xml 파일은 자신을 도메인 컨트롤러로 정의하고 서버 인스턴스를 정의하지 않습니다.

host-slave.xml

이 파일에는 서버를 관리형 도메인 호스트 컨트롤러로 실행하는 데 필요한 구성 세부 정보만 포함됩니다. 도메인 컨트롤러를 정의하지 않으며 연결할 host-slave.xml 의 도메인 컨트롤러 주소를 구성해야 합니다. 이 xml 파일은 host-slave.xml 이 머신에서 실행되고 원격 도메인 컨트롤러에서 관리하는 구성 예제를 나타냅니다. 시스템은 호스트 컨트롤러 역할을 하여 서버 인스턴스를 정의하고 시작합니다. 도메인 컨트롤러는 이러한 서버 인스턴스를 관리합니다.

기본적으로 관리형 도메인에서 JBoss EAP를 시작하면 host.xml 파일이 사용됩니다. 다른 구성으로 JBoss EAP를 시작하려면 --host-config 인수를 사용합니다. 예를 들면 다음과 같습니다.

$ EAP_HOME/bin/domain.sh --host-config=host-master.xml

1.3.8. 구성 데이터 백업

JBoss EAP 서버 구성을 복원하려면 다음 위치에서 데이터를 백업해야 합니다.

  • EAP_HOME/standalone/configuration/

    • 전체 디렉터리를 백업하여 독립 실행형 서버의 사용자 데이터, 서버 구성 및 로깅 설정을 저장합니다.
  • _EAP_HOME/standalone/data

    • data/content 디렉터리에 제한된 관리 배포에 대한 데이터를 백업합니다.
  • EAP_HOME/standalone/deployments

    • 독립 실행형 서버를 위한 배포를 백업합니다.
  • EAP_HOME/domain/configuration/

    • 사용자 및 프로필 데이터, 도메인 및 호스트 구성, 관리형 도메인의 로깅 설정을 저장하기 위해 전체 디렉터리를 백업합니다.
  • EAP_HOME/domain/data

    • 데이터/콘텐츠 디렉터리에 제한된 관리형 도메인에서 관리형 도메인 및 배포에 대한 데이터를 백업합니다.
  • EAP_HOME/modules/

    • 사용자 지정 모듈을 백업합니다.
  • EAP_HOME/welcome-content/

    • 사용자 정의 시작 콘텐츠를 백업합니다.
  • EAP_HOME/bin/

    • 사용자 지정 스크립트 또는 시작 구성 파일을 백업합니다.

1.3.9. 구성 파일 스냅샷

서버의 유지 관리 및 관리를 지원하기 위해 JBoss EAP는 시작 시 원본 구성 파일의 타임스탬프가 지정된 버전을 생성합니다.

관리 작업에서 변경한 추가 구성 변경으로 인해 원래 파일이 자동으로 백업되고 참조 및 롤백을 위해 인스턴스의 작업 사본이 보존됩니다. 또한 현재 서버 구성의 지정 시간 복사본인 구성 스냅샷을 가져올 수 있습니다. 이러한 스냅샷은 관리자가 저장하고 로드할 수 있습니다.

다음 예제에서는 standalone.xml 파일을 사용하지만 domain.xmlhost.xml 파일에 동일한 프로세스가 적용됩니다.

스냅샷 가져오기

관리 CLI를 사용하여 현재 구성의 스냅샷을 만듭니다.

:take-snapshot
{
    "outcome" => "success",
    "result" => "EAP_HOME/standalone/configuration/standalone_xml_history/snapshot/20151022-133109702standalone.xml"
}
스냅샷 나열

관리 CLI를 사용하여 모든 스냅샷을 나열합니다.

:list-snapshots
{
    "outcome" => "success",
    "result" => {
        "directory" => "EAP_HOME/standalone/configuration/standalone_xml_history/snapshot",
        "names" => [
            "20151022-133109702standalone.xml",
            "20151022-132715958standalone.xml"
        ]
    }
}
스냅샷 삭제

관리 CLI를 사용하여 스냅샷을 삭제합니다.

:delete-snapshot(name=20151022-133109702standalone.xml)

1.3.10. 스냅샷으로 서버 시작

스냅샷 또는 자동으로 저장된 구성 버전을 사용하여 서버를 시작할 수 있습니다.

사전 요구 사항

  • JBoss EAP를 설치했습니다.
  • 구성 파일의 스냅샷을 작성했습니다.

프로세스

  1. EAP_HOME/standalone/configuration/standalone_xml_history 디렉터리로 이동하여 로드할 스냅샷 또는 저장된 구성 파일을 식별합니다.
  2. 서버를 시작하고 선택한 구성 파일을 가리킵니다. 구성 디렉터리인 EAP_HOME/standalone/configuration/ 에 상대적인 파일 경로를 전달합니다.

    $ EAP_HOME/bin/standalone.sh --server-config=standalone_xml_history/snapshot/20151022-133109702standalone.xml
참고

관리형 도메인에서 서버를 실행하는 경우 구성 파일을 지정하는 대신 --host-config--domain-config=<config > 인수를 사용합니다.

1.3.11. 속성 교체

JBoss EAP에서 표현식을 사용하여 구성에서 리터럴 값 대신 대체 가능한 속성을 정의할 수 있습니다.

standalone*.xml 또는 domain.xml 구성 파일에서 속성 교체를 사용하면 속성이 시스템 속성에 있는 값으로 교체됩니다. 시스템 속성은 EAP 프로필 xml 파일에 정의되거나 명령줄 터미널에서 -D 명령을 입력하여 정의됩니다.

지정된 하위 시스템에서 속성 교체가 허용되는지 확인하려면 다음 명령을 사용하여 하위 시스템 구성에 대한 설명을 표시합니다.

/subsystem=datasources:read-resource-description(recursive=true)

expressions-allowed 속성이 true 로 설정된 경우 속성 교체가 허용됩니다.

표현식은 ${PARAMETER:DEFAULT_VALUE} 형식을 사용합니다. 지정된 매개변수가 설정되면 매개 변수의 값이 사용됩니다. 그렇지 않으면 제공된 기본값이 사용됩니다.

식을 해결하기 위해 지원되는 소스는 시스템 속성 및 환경 변수입니다. 환경 변수를 사용하여 표현식을 확인하는 경우 ${env.LANG} 형식을 사용합니다.

standalone.xml 구성 파일의 다음 예제에서는 jboss.bind.address 매개변수를 설정하지 않는 한 공용 인터페이스에 대한 inet-address127.0.0.1 로 설정합니다.

<interface name="public">
    <inet-address value="${jboss.bind.address:127.0.0.1}"/>
</interface>

다음 명령을 사용하여 EAP를 독립 실행형 서버로 시작할 때 jboss.bind.address 매개변수를 설정할 수 있습니다.

$ EAP_HOME/bin/standalone.sh -Djboss.bind.address=IP_ADDRESS
참고

배포 전용 배포의 경우 소스는 배포 아카이브의 META-INF/jboss.properties 파일에 나열된 속성일 수 있습니다. 하위 배포를 지원하는 배포 유형의 경우 속성 파일이 외부 배포에 있는 경우 모든 하위 배포에서 해상도의 범위가 지정됩니다(예: EAR). 속성 파일이 하위 배포에 있는 경우 해상도의 범위는 해당 하위 배포로만 지정됩니다.

1.3.12. 중첩된 표현식

고정 값 대신 고급 식을 사용할 수 있는 식을 중첩할 수 있습니다.You can nest expressions, which allows for more advanced use of expressions in place of fixed values.

중첩 표현식의 형식은 일반 표현식과 유사하지만 하나의 표현식은 다른 표현식에 포함됩니다. 예를 들면 다음과 같습니다.

${SYSTEM_VALUE_1${SYSTEM_VALUE_2}}

JBoss EAP는 중첩 표현식을 재귀적으로 평가하므로 내부 표현식이 먼저 평가되고 외부 표현식이 평가됩니다. 표현식은 재귀가 될 수 있습니다. 여기서 표현식은 다른 표현식으로 확인되고, 이 표현식은 확인됩니다. 관리 CLI 명령을 제외하고 표현식이 허용되는 모든 곳에 중첩 표현식이 허용됩니다.

데이터 소스 정의 암호가 마스킹된 경우 중첩 표현식을 사용할 수 있습니다. 예를 들면 다음과 같습니다. 데이터 소스에 대한 구성에는 다음 행이 있을 수 있습니다.

<password>${VAULT::ds_ExampleDS::password::1}</password>

시스템 속성(datasource_name)은 중첩된 표현식을 사용하여 ds_ExampleDS 값을 대체합니다. 다음 줄은 데이터 소스에 대한 구성의 예입니다.

<password>${VAULT::${datasource_name}::password::1}</password>

JBoss EAP는 먼저 ${datasource_name} 표현식을 계산한 다음 이 표현식을 더 큰 표현식에 입력하고 결과 표현식을 평가합니다. 이 구성의 장점은 데이터 소스의 이름이 고정된 구성에서 추상화된다는 것입니다.

1.3.13. 배포 설명자 기반 속성 교체

배포 설명자 기반 속성 교체는 설명자를 기반으로 속성을 대체하여 애플리케이션 및 빌드 체인에서 환경에 대한 가정을 제거할 수 있습니다.

환경별 구성은 주석 또는 빌드 시스템 스크립트가 아닌 배포 설명자에 지정할 수 있습니다. 파일 또는 명령줄의 매개 변수로 구성을 제공할 수 있습니다.

데이터 소스 연결 매개 변수와 같은 애플리케이션 구성은 일반적으로 개발, 테스트 및 프로덕션 환경에 따라 다릅니다. Jakarta EE 사양에 이러한 구성을 외부화하는 방법이 포함되어 있지 않으므로 이러한 분산은 빌드 시스템 스크립트에 의해 수용되는 경우가 있습니다. JBoss EAP를 사용하면 설명자 기반 속성 교체를 사용하여 외부에서 구성을 관리할 수 있습니다.

spec-descriptor-property-replacement 플래그는 Jakarta EE 설명자 교체를 제어하고 JBoss EAP는 기본적으로 이를 비활성화합니다. 이 기능이 활성화되면 다음 배포 설명자의 속성을 교체할 수 있습니다.

  • ejb-jar.xml
  • permissions.xml
  • persistence.xml
  • application.xml
  • web.xml

다음 관리 CLI 명령을 사용하여 Jakarta EE 설명자에서 속성 교체를 활성화하거나 비활성화할 수 있습니다.

/subsystem=ee:write-attribute(name="spec-descriptor-property-replacement",value=VALUE)

jboss-descriptor-property-replacement 플래그는 JBoss 관련 설명자 교체를 제어하고 JBoss EAP는 기본적으로 이를 활성화합니다. 이 기능이 활성화되면 다음 배포 설명자의 속성을 교체할 수 있습니다.

  • jboss-ejb3.xml
  • jboss-app.xml
  • jboss-web.xml
  • jboss-permissions.xml
  • *-jms.xml
  • *-ds.xml

다음 관리 CLI 명령을 사용하여 JBoss EAP 관련 설명자에서 속성 교체를 활성화하거나 비활성화합니다.

/subsystem=ee:write-attribute(name="jboss-descriptor-property-replacement",value=VALUE)

annotation-property-replacement 플래그는 주석 내부의 속성 교체를 제어하며 기본적으로 활성화되어 있지 않습니다. 이 기능이 활성화되면 애플리케이션 클래스 내부의 주석 속성의 속성을 교체할 수 있습니다.

다음 관리 CLI 명령을 사용하여 주석에서 속성 교체를 활성화하거나 비활성화합니다.

/subsystem=ee:write-attribute(name="annotation-property-replacement",value=VALUE)

1.4. JBoss EAP 네트워크 및 포트 구성

JBoss EAP를 사용하여 다양한 서비스의 네트워크 접근성을 구성하고 포트 오프셋을 사용하여 동일한 인터페이스를 사용하여 동일한 시스템에서 여러 JBoss EAP 인스턴스를 쉽게 실행할 수 있습니다. 네트워크 구성은 인터페이스 및 소켓 바인딩에 따라 구성됩니다.

이러한 각 네트워크 및 포트 구성에 대한 다음 세부 정보를 사용하여 JBoss EAP를 성공적으로 실행합니다.

1.4.1. 인터페이스

JBoss EAP는 구성에 걸쳐 이름이 지정된 인터페이스를 참조합니다. 각 용도에 인터페이스의 전체 세부 정보가 필요하지 않고 논리 이름으로 개별 인터페이스 선언을 참조하도록 JBoss EAP를 구성할 수 있습니다.

네트워크 인터페이스 세부 정보가 여러 시스템에 따라 다를 수 있는 관리형 도메인에서 더 쉽게 구성할 수도 있습니다. 각 서버 인스턴스는 논리 이름 그룹에 대응할 수 있습니다.

standalone.xml,domain.xmlhost.xml 파일에는 모두 인터페이스 선언이 포함됩니다. 사용되는 기본 구성에 따라 몇 가지 사전 구성된 인터페이스 이름이 있습니다. 관리 인터페이스는 HTTP 관리 끝점을 포함하여 관리 계층이 필요한 모든 구성 요소 및 서비스에 사용할 수 있습니다. 공용 인터페이스는 모든 애플리케이션 관련 네트워크 통신에 사용할 수 있습니다. 비보안 인터페이스는 표준 구성의 IIOP 소켓에 사용됩니다. 개인 인터페이스는 표준 구성의 Cryostat 소켓에 사용됩니다.

1.4.1.1. 기본 인터페이스 구성

JBoss EAP에는 다음과 같은 네 가지 기본 인터페이스가 포함됩니다.

<interfaces>
  <interface name="management">
    <inet-address value="${jboss.bind.address.management:127.0.0.1}"/>
  </interface>
  <interface name="public">
    <inet-address value="${jboss.bind.address:127.0.0.1}"/>
  </interface>
  <interface name="private">
    <inet-address value="${jboss.bind.address.private:127.0.0.1}"/>
  </interface>
  <interface name="unsecure">
    <inet-address value="${jboss.bind.address.unsecure:127.0.0.1}"/>
  </interface>
</interfaces>

기본적으로 JBoss EAP는 이러한 인터페이스를 127.0.0.1 에 바인딩하지만 적절한 속성을 설정하여 런타임 시 이러한 값을 재정의할 수 있습니다. 예를 들어 다음 명령을 사용하여 JBoss EAP를 독립 실행형 서버로 시작할 때 공용 인터페이스의 inet-address 를 설정할 수 있습니다.

$ EAP_HOME/bin/standalone.sh -Djboss.bind.address=IP_ADDRESS

또는 server start 명령행에서 -b 스위치를 사용할 수 있습니다.

중요

JBoss EAP에서 사용하는 기본 네트워크 인터페이스 또는 포트를 수정하는 경우 수정된 인터페이스 또는 포트를 사용하는 스크립트도 변경해야 합니다. 여기에는 JBoss EAP 서비스 스크립트와 관리 콘솔 또는 관리 CLI에 액세스할 때 올바른 인터페이스 및 포트를 지정하는 작업이 포함됩니다.

1.4.1.2. 선택적 인터페이스 구성

네트워크 인터페이스는 물리적 인터페이스에 대한 논리 이름 및 선택 기준을 지정하여 선언합니다. 선택 기준은 와일드카드 주소를 참조하거나 인터페이스 또는 주소가 유효한 일치 항목이어야 하는 하나 이상의 특성 세트를 지정할 수 있습니다.

관리 콘솔 또는 관리 CLI를 사용하여 인터페이스를 구성할 수 있습니다. 이 섹션의 뒷부분에 있는 정보에는 인터페이스 추가 및 업데이트의 몇 가지 예가 포함되어 있습니다. 관리 CLI 명령 다음에 해당 구성 XML이 표시됩니다.

1.4.1.2.1. NIC 값과의 인터페이스

다음 예제를 사용하여 NIC 값이 eth0 인 새 인터페이스를 추가할 수 있습니다.

/interface=external:add(nic=eth0)
<interface name="external">
   <nic name="eth0"/>
</interface>
1.4.1.2.2. 여러 조건부 값과의 인터페이스

다음 예제를 사용하여 실행 중인 경우 올바른 서브넷의 인터페이스 또는 주소와 일치하는 새 인터페이스를 추가하고, 멀티 캐스트를 지원하며, 지점 간이 아닌 새 인터페이스를 추가할 수 있습니다.

/interface=default:add(subnet-match=192.168.0.0/16,up=true,multicast=true,not={point-to-point=true})
<interface name="default">
   <subnet-match value="192.168.0.0/16"/>
   <up/>
   <multicast/>
   <not>
      <point-to-point/>
   </not>
</interface>
1.4.1.2.3. 인터페이스 속성 업데이트

이 예제에서는 런타임 시 이 값을 설정할 수 있도록 public 인터페이스의 기본 inet-address 값을 업데이트하여 jboss.bind.address 속성을 유지할 수 있습니다.

/interface=public:write-attribute(name=inet-address,value="${jboss.bind.address:192.168.0.0}")
<interface name="public">
    <inet-address value="${jboss.bind.address:192.168.0.0}"/>
</interface>
1.4.1.2.4. 관리형 도메인의 서버에 대한 추가 인터페이스

다음 코드를 사용하여 관리형 도메인의 서버에 인터페이스를 추가할 수 있습니다.

/host=HOST_NAME/server-config=SERVER_NAME/interface=INTERFACE_NAME:add(inet-address=127.0.0.1)
<servers>
   <server name="SERVER_NAME" group="main-server-group">
      <interfaces>
         <interface name="INTERFACE_NAME">
            <inet-address value="127.0.0.1"/>
         </interface>
      </interfaces>
   </server>
</servers>

1.4.2. 소켓 바인딩

소켓 바인딩 및 소켓 바인딩 그룹을 사용하여 JBoss EAP 구성에 필요한 네트워킹 인터페이스와 네트워크 포트 및 해당 관계를 정의합니다. 소켓 바인딩은 소켓에 대해 이름이 지정된 구성입니다. 소켓 바인딩 그룹은 논리 이름으로 그룹화되는 소켓 바인딩 선언 컬렉션입니다.

이를 통해 구성의 다른 섹션은 각 용도에 소켓 구성의 전체 세부 정보가 필요하지 않고 논리 이름으로 소켓 바인딩을 참조할 수 있습니다.

이러한 이름이 지정된 구성에 대한 선언은 standalone.xmldomain.xml 구성 파일에서 찾을 수 있습니다. 독립 실행형 서버에는 하나의 소켓 바인딩 그룹만 포함되어 있지만 관리형 도메인에는 여러 그룹을 포함할 수 있습니다. 관리형 도메인의 각 서버 그룹에 대해 소켓 바인딩 그룹을 생성하거나 여러 서버 그룹 간에 소켓 바인딩 그룹을 공유할 수 있습니다.

JBoss EAP는 기본적으로 사용되는 소켓 바인딩 그룹과 개별 배포의 요구 사항에 따라 다릅니다.

JBoss EAP 구성의 소켓 바인딩 그룹에는 다음 세 가지 유형의 소켓 바인딩이 있습니다.

인바운드 소켓 바인딩
socket-binding 요소는 JBoss EAP 서버에 대한 인바운드 소켓 바인딩을 구성하는 데 사용됩니다. 기본 JBoss EAP 구성은 HTTP 및 HTTPS 트래픽과 같은 여러 사전 구성된 소켓 바인딩 요소를 제공합니다.
원격 아웃 바운드 소켓 바인딩
remote-destination-outbound-socket-binding 요소는 JBoss EAP 서버에 원격 대상에 대한 아웃 바운드 소켓 바인딩을 구성하는 데 사용됩니다. 기본 JBoss EAP 구성은 메일 서버에 사용할 수 있는 원격 대상 소켓 바인딩 예제를 제공합니다.
로컬 아웃 바운드 소켓 바인딩
local-destination-outbound-socket-binding 요소는 JBoss EAP 서버에 로컬인 대상에 대한 아웃 바운드 소켓 바인딩을 구성하는 데 사용됩니다. 이 유형의 소켓 바인딩은 일반적으로 사용되지 않을 수 있습니다.

추가 리소스

1.4.2.1. 관리 포트

기본적으로 JBoss EAP 8.0은 관리 CLI에서 사용하는 기본 관리와 웹 기반 관리 콘솔에서 사용하는 HTTP 관리에 모두 포트 9990 을 사용합니다. JBoss EAP 6에서 네이티브 관리 포트로 사용된 포트 9999 는 더 이상 사용되지 않지만 원하는 경우 활성화할 수 있습니다.

관리 콘솔에 HTTPS가 활성화된 경우 기본적으로 포트 9993 이 사용됩니다.

1.4.2.2. 기본 소켓 바인딩

JBoss EAP에는 사전 정의된 5개의 프로필(기본값, ha, full ,full -ha ,load-balancer) 각각에 대해 소켓 바인딩 그룹이 포함되어 있습니다.

중요

JBoss EAP에서 사용하는 기본 네트워크 인터페이스 또는 포트를 수정하는 경우 수정된 인터페이스 또는 포트를 사용하는 스크립트도 변경해야 합니다. 여기에는 JBoss EAP 서비스 스크립트와 관리 콘솔 또는 관리 CLI에 액세스할 때 올바른 인터페이스 및 포트를 지정하는 작업이 포함됩니다.

1.4.2.2.1. 독립 실행형 서버의 소켓 바인딩 그룹

독립 실행형 서버로 실행하는 경우 구성 파일별로 하나의 소켓 바인딩 그룹만 정의됩니다. 각 독립 실행형 구성 파일(standalone.xml,standalone-ha.xml,standalone-full.xml,standalone-full-ha.xml )은 해당 프로필에서 사용하는 기술에 대한 소켓 바인딩을 정의합니다.

예를 들어 기본 독립 실행형 구성 파일(standalone.xml)은 다음과 같은 소켓 바인딩을 지정합니다.

<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">
    <socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"/>
    <socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9993}"/>
    <socket-binding name="ajp" port="${jboss.ajp.port:8009}"/>
    <socket-binding name="http" port="${jboss.http.port:8080}"/>
    <socket-binding name="https" port="${jboss.https.port:8443}"/>
    <socket-binding name="txn-recovery-environment" port="4712"/>
    <socket-binding name="txn-status-manager" port="4713"/>
    <outbound-socket-binding name="mail-smtp">
        <remote-destination host="localhost" port="25"/>
    </outbound-socket-binding>
</socket-binding-group>
1.4.2.2.2. 관리형 도메인의 소켓 바인딩 그룹

관리형 도메인에서 실행하는 경우 모든 소켓 바인딩 그룹이 domain.xml 파일에 정의됩니다. 미리 정의된 소켓 바인딩 그룹이 5개 있습니다.

  • standard-sockets
  • ha-sockets
  • full-sockets
  • full-ha-sockets
  • load-balancer-sockets

각 소켓 바인딩 그룹은 해당 프로필에서 사용하는 기술에 대한 소켓 바인딩을 지정합니다. 예를 들어 full-ha-sockets 소켓 바인딩 그룹은 고가용성을 위해 full-ha 프로필에서 사용하는 여러 jgroups 소켓 바인딩을 정의합니다.

<socket-binding-groups>
  <socket-binding-group name="standard-sockets" default-interface="public">
    <!-- Needed for server groups using the 'default' profile  -->
    <socket-binding name="ajp" port="${jboss.ajp.port:8009}"/>
    <socket-binding name="http" port="${jboss.http.port:8080}"/>
    <socket-binding name="https" port="${jboss.https.port:8443}"/>
    <socket-binding name="txn-recovery-environment" port="4712"/>
    <socket-binding name="txn-status-manager" port="4713"/>
    <outbound-socket-binding name="mail-smtp">
      <remote-destination host="localhost" port="25"/>
    </outbound-socket-binding>
  </socket-binding-group>
  <socket-binding-group name="ha-sockets" default-interface="public">
    <!-- Needed for server groups using the 'ha' profile  -->
    ...
  </socket-binding-group>
  <socket-binding-group name="full-sockets" default-interface="public">
    <!-- Needed for server groups using the 'full' profile  -->
    ...
  </socket-binding-group>
  <socket-binding-group name="full-ha-sockets" default-interface="public">
    <!-- Needed for server groups using the 'full-ha' profile  -->
    <socket-binding name="ajp" port="${jboss.ajp.port:8009}"/>
    <socket-binding name="http" port="${jboss.http.port:8080}"/>
    <socket-binding name="https" port="${jboss.https.port:8443}"/>
    <socket-binding name="iiop" interface="unsecure" port="3528"/>
    <socket-binding name="iiop-ssl" interface="unsecure" port="3529"/>
    <socket-binding name="jgroups-mping" interface="private" port="0" multicast-address="${jboss.default.multicast.address:230.0.0.4}" multicast-port="45700"/>
    <socket-binding name="jgroups-tcp" interface="private" port="7600"/>
    <socket-binding name="jgroups-udp" interface="private" port="55200" multicast-address="${jboss.default.multicast.address:230.0.0.4}" multicast-port="45688"/>
    <socket-binding name="modcluster" port="0" multicast-address="224.0.1.105" multicast-port="23364"/>
    <socket-binding name="txn-recovery-environment" port="4712"/>
    <socket-binding name="txn-status-manager" port="4713"/>
    <outbound-socket-binding name="mail-smtp">
      <remote-destination host="localhost" port="25"/>
    </outbound-socket-binding>
  </socket-binding-group>
  <socket-binding-group name="load-balancer-sockets" default-interface="public">
    <!-- Needed for server groups using the 'load-balancer' profile  -->
    ...
  </socket-binding-group>
</socket-binding-groups>
참고

관리 인터페이스에 대한 소켓 구성은 도메인 컨트롤러의 host.xml 파일에 정의되어 있습니다.

1.4.2.3. 소켓 바인딩 구성

소켓 바인딩을 정의할 때 포트인터페이스 특성과 멀티캐스트 주소 및 멀티 캐스트 포트 와 같은 멀티 캐스트 설정을 구성할 수 있습니다.

프로세스

소켓 바인딩은 관리 콘솔 또는 관리 CLI를 사용하여 구성할 수 있습니다. 다음 단계는 소켓 바인딩 그룹을 추가하고, 소켓 바인딩을 추가하고, 관리 CLI를 사용하여 소켓 바인딩 설정을 구성하는 단계를 진행합니다.

  1. 새 소켓 바인딩 그룹을 추가합니다.

    참고

    JBoss EAP의 인스턴스를 독립 실행형 서버로 실행할 때는 추가 소켓 바인딩을 추가할 수 없습니다. 기존 소켓 바인딩을 제거, 추가 또는 수정할 수 있습니다.

    /socket-binding-group=new-sockets:add(default-interface=public)
  2. 소켓 바인딩을 추가합니다.

    /socket-binding-group=new-sockets/socket-binding=new-socket-binding:add(port=1234)
  3. 소켓 바인딩 그룹에 의해 설정된 기본값 이외의 인터페이스를 사용하도록 소켓 바인딩을 변경합니다.

    /socket-binding-group=new-sockets/socket-binding=new-socket-binding:write-attribute(name=interface,value=unsecure)

다음 예제에서는 위의 단계가 완료된 후 XML 구성이 표시되는 방법을 보여줍니다.

<socket-binding-groups>
    ...
    <socket-binding-group name="new-sockets" default-interface="public">
        <socket-binding name="new-socket-binding" interface="unsecure" port="1234"/>
    </socket-binding-group>
</socket-binding-groups>

추가 리소스

1.4.2.4. 포트 오프셋

포트 오프셋은 해당 서버의 소켓 바인딩 그룹에 지정된 모든 포트 값에 추가된 숫자 오프셋 값입니다. 이를 통해 서버는 소켓 바인딩 그룹에 정의된 포트 값을 상속하여 동일한 호스트 및 인터페이스의 다른 서버와 충돌하지 않도록 오프셋을 사용할 수 있습니다. 예를 들어 소켓 바인딩 그룹의 HTTP 포트가 8080 이고 서버에서 100 의 포트 오프셋을 사용하는 경우 HTTP 포트는 8180 입니다.

나중에 정보는 관리 CLI를 사용하여 관리형 도메인의 서버에 대해 250 의 포트 오프셋을 설정하는 예입니다.

/host=master/server-config=server-two/:write-attribute(name=socket-binding-port-offset,value=250)

포트 오프셋은 관리형 도메인의 서버와 동일한 호스트에서 여러 독립 실행형 서버를 실행하는 데 사용할 수 있습니다.

jboss.socket.binding.port-offset 속성을 사용하여 독립 실행형 서버를 시작할 때 포트 오프셋을 전달할 수 있습니다.

$ EAP_HOME/bin/standalone.sh -Djboss.socket.binding.port-offset=100

포트 오프셋은 JBoss Profiles에서 시스템 속성 이름을 사용하여 정의됩니다. 시스템 속성 이름을 변경하거나 이를 제거하고 포트 오프셋 설정을 하드 코딩할 수 있습니다.

<socket-binding-group name="standard-sockets" default-interface="public" port-offset ="${jboss.socket.binding.port-offset:0}">

1.4.3. IPv6 주소

기본적으로 JBoss EAP는 IPv4 주소를 사용하여 실행되도록 구성되어 있습니다. 다음 절차에서는 IPv6 주소를 사용하여 실행되도록 JBoss EAP를 구성하는 방법을 설명합니다.

1.4.3.1. IPv6 주소용 JVM 스택 구성

IPv6를 사용하여 실행되도록 JBoss EAP를 구성할 수 있습니다.

프로세스

IPv6 주소에서 실행되도록 시작 구성을 업데이트하려면 다음 단계를 완료합니다.

  1. 시작 구성 파일을 엽니다.

    • 독립 실행형 서버로 실행하는 경우 EAP_HOME/bin/standalone.conf 파일(또는 Windows Server의 경우 standalone.conf. #159)을 편집합니다.
    • 관리형 도메인에서 실행하는 경우 EAP_HOME/bin/domain.conf 파일(또는 Windows Server의 경우 domain.conf. skip)을 편집합니다.
  2. java.net.preferIPv4Stack 속성을 false 로 설정합니다.

    -Djava.net.preferIPv4Stack=false
  3. java.net.preferIPv6Addresses 속성을 추가하고 true 로 설정합니다.

    -Djava.net.preferIPv6Addresses=true

다음 예제에서는 시작 구성 파일의 JVM 옵션이 위의 변경 후 어떻게 표시되는지 보여줍니다.

#
# Specify options to pass to the Java VM.
#
if [ "x$JAVA_OPTS" = "x" ]; then
   JAVA_OPTS="-Xms1303m -Xmx1303m -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true"
   JAVA_OPTS="$JAVA_OPTS -Djboss.modules.system.pkgs=$JBOSS_MODULES_SYSTEM_PKGS -Djava.awt.headless=true"
   JAVA_OPTS="$JAVA_OPTS -Djboss.modules.policy-permissions=true"
else
   echo "JAVA_OPTS already set in environment; overriding default settings with values: $JAVA_OPTS"
fi

1.4.3.2. IPv6 주소로 업데이트된 기본 인터페이스 값

구성의 기본 인터페이스 값은 IPv6 주소로 변경할 수 있습니다. 예를 들어 다음 관리 CLI 명령은 관리 인터페이스를 IPv6 루프백 주소(::1)로 설정합니다.

/interface=management:write-attribute(name=inet-address,value="${jboss.bind.address.management:[::1]}")

이전 명령을 실행한 후 다음 예제에서는 XML 구성이 어떻게 표시될 수 있는지 보여줍니다.

<interfaces>
    <interface name="management">
        <inet-address value="${jboss.bind.address.management:[::1]}"/>
    </interface>
    ....
</interfaces>

1.5. JBoss EAP 서버 구성 최적화

최신 업데이트를 JBoss EAP에 적용하여 보안 CVE 및 기타 고객의 버그 수정 사항을 최신 상태로 유지합니다.

JBoss EAP 서버를 설치하고 관리 사용자를 생성한 후 서버 구성을 최적화합니다.

일반적인 최적화에는 다음이 포함됩니다.

  • 운영 체제가 웹 연결에 필요한 충분한 파일 설명자를 제공하도록 ulimits 설정
  • 스레드 풀 크기 조정

2장. JBoss EAP를 사용하여 애플리케이션 개발

Eclipse IDE(통합 개발 환경) 및 JBoss EAP 8.0 빠른 시작 예제와 함께 JBoss Tools를 사용하여 애플리케이션 개발을 시작할 수 있습니다.

참고

JBoss Tools는 JBoss EAP 8.0에서 더 이상 사용되지 않습니다. 이 기능에 대한 개선 사항은 없으며 향후 릴리스에서 제거될 수 있습니다.

2.1. 개요

JBoss Tools는 JBoss EAP 기술 지원을 개선하는 Eclipse 기반 플러그인 세트입니다. JBoss Tools는 Eclipse IDE(통합 개발 환경)와 함께 작동합니다.

참고

JBoss Tools는 JBoss EAP 8.0에서 더 이상 사용되지 않습니다. 이 기능에 대한 개선 사항은 없으며 향후 릴리스에서 제거될 수 있습니다.

중요

JBoss Tools는 커뮤니티 프로젝트이며 Red Hat에서 지원하지 않습니다. JBoss Tools 인스턴스 설정 및 실행에 대한 지원은 커뮤니티 웹 사이트를 참조하십시오. JBoss Tools를 다운로드하려면 JBoss Tools 다운로드를 참조하십시오.

많은 퀵 스타트 코드 예제가 JBoss EAP 8.0에 제공되어 사용자가 다른 자카르타 EE 기술을 사용하여 애플리케이션 작성을 시작할 수 있습니다. JBoss Tools를 사용하여 퀵 스타트 예제를 실행할 수 있습니다.

추가 리소스

2.2. 개발 환경 설정

Eclipse IDE에서 사용할 개발 환경을 설정해야 합니다.

참고

JBoss Tools는 JBoss EAP 8.0에서 더 이상 사용되지 않습니다. 이 기능에 대한 개선 사항은 없으며 향후 릴리스에서 제거될 수 있습니다.

프로세스

  1. JBoss Tools 다운로드 및 설치.

    자세한 내용은 JBoss Tools 설치 가이드의 설치 방법을 참조하십시오.

  2. JBoss Tools에서 JBoss EAP 서버를 설정합니다.

    자세한 내용은 How To: Configure the IDE for use with JBoss EAP and JBoss Web Framework Kit in the JBoss Tools 가이드를 참조하십시오.

추가 리소스

2.3. 빠른 시작 예

JBoss EAP에서 제공하는 빠른 시작 예제는 Maven 프로젝트입니다.

2.3.1. Maven 정보

Apache Maven은 소프트웨어 프로젝트를 생성, 관리 및 구축하기 위해 Java 애플리케이션 개발에 사용되는 분산 빌드 자동화 툴입니다. Maven은 POM(Project Object Model) 파일을 사용하여 프로젝트를 정의하고 빌드 프로세스를 관리합니다. Poms는 XML 파일을 사용하여 결과 프로젝트 패키징 및 출력의 모듈 및 구성 요소 종속 항목, 빌드 순서 및 대상을 설명합니다. 이렇게 하면 프로젝트가 정확하고 일관된 방식으로 구축됩니다.

Maven은 리포지토리를 사용하여 이 작업을 수행합니다. Maven 리포지토리는 Java 라이브러리, 플러그인 및 기타 빌드 아티팩트를 저장합니다. 기본 공용 리포지토리는 Maven 2 Central Repository 이지만 리포지토리는 개발 팀 간에 공통 아티팩트를 공유하는 것을 목표로 하는 회사 내 프라이빗 및 내부일 수 있습니다. 리포지토리는 타사에서 사용할 수도 있습니다. 자세한 내용은 Apache Maven 프로젝트 및 리포지토리 소개 가이드를 참조하십시오. Jakarta EE 개발자는 일반적으로 JBoss EAP에서 애플리케이션을 빌드하는 데 사용합니다.

2.3.2. 빠른 시작과 함께 Maven 사용

JBoss EAP 8.0에 애플리케이션을 빌드하고 배포하는 데 필요한 아티팩트 및 종속 항목은 공개 리포지토리에서 호스팅됩니다. JBoss EAP 7 빠른 시작부터 빠른 시작 시 이러한 리포지토리를 사용하도록 Maven settings.xml 파일을 구성할 필요가 없습니다. 이제 Maven 리포지토리가 빠른 시작 프로젝트 POM 파일에 구성됩니다. 이 구성 방법은 빠른 시작을 더 쉽게 시작할 수 있도록 제공되지만 빌드 속도가 느려질 수 있으므로 일반적으로 프로덕션 프로젝트에는 권장되지 않습니다.

JBoss Tools에는 Maven이 포함되어 있으므로 별도로 다운로드하여 설치할 필요가 없습니다.

Maven 명령줄을 사용하여 애플리케이션을 빌드하고 배포하려면 먼저 Apache Maven 프로젝트에서 Maven을 다운로드하고 Maven 설명서에 제공된 지침을 사용하여 설치해야 합니다.

참고

JBoss Tools는 JBoss EAP 8.0에서 더 이상 사용되지 않습니다. 이 기능에 대한 개선 사항은 없으며 향후 릴리스에서 제거될 수 있습니다.

2.4. 빠른 시작 다운로드 및 실행

2.4.1. 빠른 시작 다운로드

JBoss EAP에는 다양한 Jakarta EE 기술을 사용하여 애플리케이션을 작성할 수 있도록 설계된 포괄적인 빠른 시작 코드 예제 세트가 포함되어 있습니다. 빠른 시작은 Red Hat 고객 포털에서 다운로드할 수 있습니다.

프로세스

  1. Red Hat 고객 포털의 JBoss EAP 다운로드 페이지에 로그인합니다.
  2. 버전 드롭다운 메뉴에서 8.0 을 선택합니다.
  3. 목록에서 Red Hat JBoss Enterprise Application Platform 8.0.0 빠른 시작 항목을 찾아 다운로드를 클릭하여 퀵 스타트가 포함된 .zip 파일을 다운로드합니다.
  4. .zip 파일을 원하는 디렉터리에 저장합니다.
  5. .zip 파일을 추출합니다.

2.4.2. JBoss Tools로 퀵스타트 가져오기

빠른 시작이 다운로드되면 JBoss Tools로 가져와서 JBoss EAP에 배포할 수 있습니다.

참고

JBoss Tools는 JBoss EAP 8.0에서 더 이상 사용되지 않습니다. 이 기능에 대한 개선 사항은 없으며 향후 릴리스에서 제거될 수 있습니다.

각 빠른 시작에는 프로젝트 및 구성 정보가 포함된 POM 파일이 포함되어 있습니다. 이 POM 파일을 사용하여 빠른 시작을 JBoss 툴로 쉽게 가져올 수 있습니다.

중요

빠른 시작 프로젝트 폴더가 JBoss Tools로 가져올 때 IDE 작업 공간에 있는 경우 IDE에서 잘못된 프로젝트 이름과 WAR 아카이브 이름을 생성합니다. 시작하기 전에 빠른 시작 프로젝트 폴더가 IDE 작업 공간 외부에 있는지 확인하십시오.

프로세스

  1. JBoss 툴을 시작합니다.
  2. 파일가져오기 를 선택합니다.
  3. MavenExisting Maven 프로젝트를 선택한 다음 Next 를 클릭합니다.

    그림 2.1. 기존 Maven 프로젝트 가져오기

    *가져오기* 창입니다.
  4. 원하는 빠른 시작 디렉터리(예: helloworld 빠른 시작)로 이동하여 OK 를 클릭합니다. 프로젝트 목록 상자는 선택한 빠른 시작 프로젝트의 pom.xml 파일로 채워집니다.

    그림 2.2. Maven 프로젝트 선택

    *Maven Projects* 선택 창입니다.
  5. 완료를 클릭합니다.

추가 리소스

2.4.3. helloworld 빠른 시작 실행

helloworld 퀵스타트 실행은 JBoss EAP 서버가 올바르게 구성되어 있고 실행되고 있는지 확인하는 간단한 방법입니다.

참고

JBoss Tools는 JBoss EAP 8.0에서 더 이상 사용되지 않습니다. 이 기능에 대한 개선 사항은 없으며 향후 릴리스에서 제거될 수 있습니다.

프로세스

  1. 서버를 아직 정의하지 않은 경우 JBoss EAP 서버를 JBoss 툴에 추가합니다. How to: Configure the IDE for use with JBoss EAP and JBoss Web Framework Kit 를 참조하십시오.
  2. Project Explorer 탭에서 helloworld 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 Run AsRun on Server 를 선택합니다.

    그림 2.3. Run As - Run on Server

    *실행* → *서버에서 실행* 화면 캡처입니다.
  3. 서버 목록에서 JBoss EAP 8.0 서버를 선택하고 다음을 클릭합니다.

    그림 2.4. 서버에서 실행

    *서버에서 실행* 창입니다.
  4. 서버에 helloworld 빠른 시작이 이미 나열되어 있습니다. 완료 를 클릭하여 빠른 시작을 배포합니다.

    그림 2.5. 서버에서 구성된 리소스 수정

    *리소스 추가 및 제거* 창입니다.
  5. 결과를 확인합니다.

    • 서버 탭에서 JBoss EAP 8.0 서버 상태가 Started 로 변경됩니다.
    • Console 탭에는 JBoss EAP 서버 시작 및 helloworld 빠른 시작 배포에 대한 세부 메시지가 표시됩니다.

      WFLYUT0021: Registered web context: /helloworld
      WFLYSRV0010: Deployed "helloworld.war" (runtime-name : "helloworld.war")
    • helloworld 애플리케이션은 http://localhost:8080/helloworld 에서 사용할 수 있으며 텍스트 Hello World! 를 표시합니다.

2.4.4. metrics -validation quickstart 를 실행합니다.

8080 -validation quickstart와 같은 일부 빠른 시작에서는 사용자 인터페이스 계층을 제공하지 않고 대신 Arquillian 테스트를 제공하여 기능을 보여줍니다.

참고

JBoss Tools는 JBoss EAP 8.0에서 더 이상 사용되지 않습니다. 이 기능에 대한 개선 사항은 없으며 향후 릴리스에서 제거될 수 있습니다.

프로세스

  1. 8080 -validation 빠른 시작을 JBoss 툴로 가져옵니다.
  2. Servers 탭에서 서버를 마우스 오른쪽 버튼으로 클릭하고 Start 를 선택하여 JBoss EAP 서버를 시작합니다. Servers 탭이 없거나 서버를 아직 정의하지 않은 경우 JBoss EAP 서버를 JBoss Tools에 추가합니다. How to: Configure the IDE for use with JBoss EAP and JBoss Web Framework Kit 를 참조하십시오.
  3. Project Explorer 탭에서 8080 -validation 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 Run AsMaven Build 를 선택합니다.
  4. Goals 입력 필드에 다음을 입력하고 실행을 클릭합니다.

    clean verify -Parq-remote

    그림 2.6. 설정 편집

    *구성 편집* 창입니다.
  5. 결과를 확인합니다.

    Console 탭에는 8080 -validation Arquillian 테스트 결과가 표시됩니다.

    -------------------------------------------------------
     T E S T S
    -------------------------------------------------------
    Running org.jboss.as.quickstarts.bean_validation.test.MemberValidationTest
    Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.189 sec
    
    Results :
    
    Tests run: 5, Failures: 0, Errors: 0, Skipped: 0
    
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------

2.4.5. 명령줄에서 퀵스타트 실행

Maven을 사용하여 명령줄에서 빠른 시작을 쉽게 빌드하고 배포할 수 있습니다. Maven이 아직 설치되지 않은 경우 Apache Maven 프로젝트를 참조하십시오.

README.md 파일은 시스템 요구 사항에 대한 일반적인 정보가 포함된 퀵 스타트의 루트 디렉터리에 제공됩니다. Maven 구성, 사용자 추가, 빠른 시작 실행.

각 빠른 시작에는 특정 지침과 빠른 시작을 실행하는 Maven 명령을 제공하는 자체 README.md 파일도 포함되어 있습니다.

프로세스

  1. helloworld 빠른 시작의 루트 디렉터리에서 README.md 파일을 검토합니다.
  2. JBoss EAP 서버를 시작합니다.

    $ EAP_HOME/bin/standalone.sh
  3. helloworld 빠른 시작 디렉터리로 이동합니다.
  4. 빠른 시작의 README.md 파일에 제공된 Maven 명령을 사용하여 빠른 시작을 빌드하고 배포합니다.

    $ mvn clean install wildfly:deploy
  5. 이제 helloworld 애플리케이션을 http://localhost:8080/helloworld 에서 사용할 수 있으며 텍스트 Hello World! 를 표시합니다.

2.5. 퀵스타트 예제 검토

2.5.1. helloworld 빠른 시작 살펴보기

helloworld 빠른 시작에서는 JBoss EAP에 간단한 서블릿을 배포하는 방법을 보여줍니다. 비즈니스 로직은 서비스에 캡슐화되며, 이 논리는 CDI(Contexts and dependency Cryostat) 5.1로 제공되며 서블릿에 주입됩니다. 이 빠른 시작은 서버를 올바르게 구성하고 시작했는지 확인하는 시작점입니다.

명령줄을 사용하여 이 빠른 시작을 빌드하고 배포하는 자세한 지침은 helloworld 빠른 시작 디렉터리의 루트에 있는 README.html 파일에서 확인할 수 있습니다. 이 문서에서는 JBoss Tools를 사용하여 빠른 시작을 실행하는 방법을 설명하고 JBoss Tools를 설치하고 Maven을 구성하고 helloworld 빠른 시작을 성공적으로 실행하는 방법을 설명합니다.

참고

JBoss Tools는 JBoss EAP 8.0에서 더 이상 사용되지 않습니다. 이 기능에 대한 개선 사항은 없으며 향후 릴리스에서 제거될 수 있습니다.

2.5.1.1. 디렉터리 구조 검사

helloworld 빠른 시작 코드는 QUICKSTART_HOME/helloworld/ 디렉터리에서 확인할 수 있습니다. helloworld 빠른 시작은 서블릿 및 CDI 8080으로 구성됩니다. 애플리케이션의 article -INF/ 디렉터리에는 버전 번호 1.1 및 all 의 empty- discovery-mode 가 있는 beans.xml 파일도 포함되어 있습니다. 이 마커 파일은 WAR를 8080 아카이브로 식별하고 JBoss EAP에 이 애플리케이션에서 빈을 찾고 CDI를 활성화하도록 지시합니다.

src/main/webapp/ 디렉터리에는 quickstart의 파일이 포함되어 있습니다. 이 예제의 모든 구성 파일은 beans.xml 파일을 포함하여 src /main/webapp/ 내의 website-INF / 디렉터리에 있습니다. src/main/webapp/ 디렉터리에는 간단한 메타 새로 고침을 사용하여 사용자의 브라우저를 http://localhost:8080/helloworld/HelloWorld 에 있는 서블릿으로 리디렉션하는 index.html 파일도 포함되어 있습니다. 빠른 시작에는 web.xml 파일이 필요하지 않습니다.

2.5.1.2. HelloWorldServlet.java 코드 검토

패키지 선언 및 가져오기는 이러한 목록에서 제외되었습니다. 전체 목록은 빠른 시작 소스 코드에서 사용할 수 있습니다.

참고

JBoss Tools는 JBoss EAP 8.0에서 더 이상 사용되지 않습니다. 이 기능에 대한 개선 사항은 없으며 향후 릴리스에서 제거될 수 있습니다.

사전 요구 사항

  • JBoss 툴 설치. 자세한 내용은 JBoss Tools 설치 가이드의 설치 방법을 참조하십시오.
  • helloworld 빠른 시작을 실행합니다.
  • 웹 브라우저를 열고 http://localhost:8080/helloworld 에서 애플리케이션에 액세스하여 helloworld 빠른 시작이 JBoss EAP에 성공적으로 배포되었는지 확인합니다.

프로세스

  1. HelloWorldServlet 코드를 검토합니다.

    HelloWorldServlet.java 파일은 src/main/java/org/jboss/as/quickstarts/helloworld/ 디렉터리에 있습니다. 이 서블릿은 브라우저에 정보를 전송합니다.

    예: HelloWorldServlet 클래스 코드

    42 @SuppressWarnings("serial")
    43 @WebServlet("/HelloWorld")
    44 public class HelloWorldServlet extends HttpServlet {
    45
    46     static String PAGE_HEADER = "<html><head><title>helloworld</title></head><body>";
    47
    48     static String PAGE_FOOTER = "</body></html>";
    49
    50     @Inject
    51	   HelloService helloService;
    52
    53     @Override
    54     protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    55         resp.setContentType("text/html");
    56         PrintWriter writer = resp.getWriter();
    57         writer.println(PAGE_HEADER);
    58         writer.println("<h1>" + helloService.createHelloMessage("World") + "</h1>");
    59         writer.println(PAGE_FOOTER);
    60         writer.close();
    61     }
    62
    63 }

2.5.1.2.1. HelloWorldServlet 세부 정보

이 서블릿은 브라우저로 정보를 보냅니다.

표 2.1. HelloWorldServlet 세부 정보

라인참고

43

필요한 것은 @WebServlet 주석을 추가하고 서블릿에 액세스하는 데 사용되는 URL에 대한 매핑을 제공하는 것입니다.

46-48

모든 웹 페이지에는 올바르게 구성된 HTML이 필요합니다. 이 빠른 시작에서는 정적 문자열을 사용하여 최소 헤더 및 footer 출력을 작성합니다.

50-51

이러한 줄은 실제 메시지를 생성하는 HelloService CDI 8080을 주입합니다. HelloService의 API를 변경하지 않는 한, 이 접근 방식을 통해 뷰 계층을 변경하지 않고 나중에 HelloService 구현을 변경할 수 있습니다.

58

이 줄은 서비스를 호출하여 "Hello World" 메시지를 생성하고 HTTP 요청에 씁니다.

  1. HelloService 코드를 검토합니다.

    HelloService.java 파일은 src/main/java/org/jboss/as/quickstarts/helloworld/ 디렉터리에 있습니다. 이 서비스는 단순히 메시지를 반환합니다. XML 또는 주석 등록이 필요하지 않습니다.

    예: HelloService 클래스 코드

    public class HelloService {
    
        String createHelloMessage(String name) {
            return "Hello " + name + "!";
        }
    }

추가 리소스

2.5.2. 숫자별 퀵스타트 살펴보기

numberguess quickstart는 비대시적인 간단한 애플리케이션을 생성하고 JBoss EAP에 배포하는 방법을 보여줍니다. information is displayed using a Cryostat view and business logic is encapsulated in two CDI 빈. 숫자 별 빠른 시작에서는 1에서 100 사이의 숫자를 추측하려고 10 번 있습니다. 각 시도 후, 귀하의 추측이 너무 높은지 너무 낮은지 여부를 알려줍니다.

숫자 빠른 시작 코드는 QUICKSTART_HOME/ numberguess / 디렉토리에서 찾을 수 있습니다. 여기서 QUICKSTART_HOME 은 JBoss EAP 빠른 시작을 다운로드하여 압축을 해제한 디렉터리입니다. numberguess quickstart는 다수의 빈, 구성 파일,JSF(JSF) 뷰로 구성되며 WAR 모듈로 패키징됩니다.

명령줄을 사용하여 이 빠른 시작을 빌드하고 배포하는 자세한 지침은 numberguess quickstart 디렉터리의 루트에 있는 README.html 파일에서 확인할 수 있습니다. 다음 예제에서는 JBoss Tools를 사용하여 빠른 시작을 실행합니다.

참고

JBoss Tools는 JBoss EAP 8.0에서 더 이상 사용되지 않습니다. 이 기능에 대한 개선 사항은 없으며 향후 릴리스에서 제거될 수 있습니다.

2.5.2.1. 숫자 구성 파일 검사

이 예제의 모든 구성 파일은 퀵 스타트의 QUICKSTART_HOME/numbergues/src/main/webapp/ websites-INF/ 디렉터리에 있습니다.

사전 요구 사항

  • JBoss 툴 설치. 자세한 내용은 JBoss Tools 설치 가이드의 설치 방법을 참조하십시오.
  • numberguess quickstart를 실행합니다.
  • 웹 브라우저를 열고 이 URL에서 애플리케이션에 액세스하여 numberguess quickstart가 JBoss EAP에 성공적으로 배포되었는지 확인합니다. http://localhost:8080/numberguess.
참고

JBoss Tools는 JBoss EAP 8.0에서 더 이상 사용되지 않습니다. 이 기능에 대한 개선 사항은 없으며 향후 릴리스에서 제거될 수 있습니다.

프로세스

  1. faces-config.xml 파일을 검사합니다.

    이 빠른 시작에서는 faces-config.xml 파일 이름의 Cryostat 2.2 버전을 사용합니다. 표준 버전의 Telelet은 Cryostat 2.2의 기본 보기 처리기이므로 구성이 필요하지 않습니다. 이 파일은 root 요소로만 구성되며 애플리케이션에서 Cryostat를 사용하도록 설정해야 함을 나타내는 마커 파일일 뿐입니다.

    <faces-config version="2.2"
       xmlns="http://xmlns.jcp.org/xml/ns/javaee"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="
          http://xmlns.jcp.org/xml/ns/javaee
          http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd">
    
    </faces-config>
  2. beans.xml 파일을 검사합니다.

    beans.xml 파일에는 모든 의 버전 번호 1.1과 metrics -discovery-mode 가 포함되어 있습니다. 이 파일은 WAR를 빈 아카이브로 식별하는 마커 파일이며 JBoss EAP에 이 애플리케이션에서 빈을 찾고 CDI를 활성화하도록 지시합니다.

    <beans xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="
          http://xmlns.jcp.org/xml/ns/javaee
          http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd"
        bean-discovery-mode="all">
    </beans>
참고

이 빠른 시작에는 web.xml 파일이 필요하지 않습니다.

추가 리소스

2.5.2.2. Cryostat 코드 검사

Cryostat는 소스 파일에 .xhtml 파일 확장자를 사용하지만 .jsf 확장자를 사용하여 렌더링된 보기를 제공합니다. home.xhtml 파일은 src/main/webapp/ 디렉터리에 있습니다.

예: Cryostat 소스 코드

19<html xmlns="http://www.w3.org/1999/xhtml"
20	xmlns:ui="http://java.sun.com/jsf/facelets"
21	xmlns:h="http://java.sun.com/jsf/html"
22	xmlns:f="http://java.sun.com/jsf/core">
23
24	<head>
25	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
26	<title>Numberguess</title>
27	</head>
28
29	<body>
30	<div id="content">
31		<h1>Guess a number...</h1>
32		<h:form id="numberGuess">
33
34		<!-- Feedback for the user on their guess -->
35	<div style="color: red">
36		<h:messages id="messages" globalOnly="false" />
37		<h:outputText id="Higher" value="Higher!"
38 		  rendered="#{game.number gt game.guess and game.guess ne 0}" />
39		<h:outputText id="Lower" value="Lower!"
40		   rendered="#{game.number lt game.guess and game.guess ne 0}" />
41	</div>
42
43	<!-- Instructions for the user -->
44	<div>
45	I'm thinking of a number between <span
46	id="numberGuess:smallest">#{game.smallest}</span> and <span
47	id="numberGuess:biggest">#{game.biggest}</span>. You have
48	#{game.remainingGuesses} guesses remaining.
49	</div>
50
51	<!-- Input box for the users guess, plus a button to submit, and reset -->
52	<!-- These are bound using EL to our CDI beans -->
53	<div>
54	Your guess:
55	<h:inputText id="inputGuess" value="#{game.guess}"
56		required="true" size="3"
57		disabled="#{game.number eq game.guess}"
58		validator="#{game.validateNumberRange}" />
59		<h:commandButton id="guessButton" value="Guess"
60			action="#{game.check}"
61			disabled="#{game.number eq game.guess}" />
62	</div>
63	<div>
64	<h:commandButton id="restartButton" value="Reset"
65	action="#{game.reset}" immediate="true" />
66	</div>
67	</h:form>
68
69	</div>
70
71	<br style="clear: both" />
72
73	</body>
74</html>

다음 행 번호는 JBoss Tools에서 파일을 볼 때 표시되는 행 번호입니다.

참고

JBoss Tools는 JBoss EAP 8.0에서 더 이상 사용되지 않습니다. 이 기능에 대한 개선 사항은 없으며 향후 릴리스에서 제거될 수 있습니다.

표 2.2. Cryostat 세부 정보

라인참고

36-40

이는 사용자에게 보낼 수 있는 메시지입니다: "Higher!" 및 "Lower!"

45-48

사용자가 추측할 때 추측할 수 있는 숫자의 범위가 작아집니다. 이 문장은 유효한 추측의 범위를 확인하기 위해 변경됩니다.

55-58

이 입력 필드는 value 표현식을 사용하여 metrics 속성에 바인딩됩니다.

58

유효성 검사기 바인딩은 사용자가 실수로 추측할 수 있는 범위 외부에서 번호를 입력하지 않도록 하는 데 사용됩니다. 유효성 검사기가 여기에 없는 경우 사용자는 경계가 없는 숫자에 추측을 사용할 수 있습니다.

59-61

사용자가 서버에 추측을 보낼 수 있는 방법이 있어야 합니다. 여기에서 8080의 작업 메서드에 바인딩합니다.

2.5.2.3. 숫자 클래스 파일을 검사합니다.

모든 숫자 빠른 시작 소스 파일은 QUICKSTART_HOME/ numberguess /src/main/java/org/jboss/as/quickstarts/numberguess/ 디렉토리에서 확인할 수 있습니다. 패키지 선언 및 가져오기는 이러한 목록에서 제외되었습니다. 전체 목록은 빠른 시작 소스 코드에서 사용할 수 있습니다.

프로세스

  1. Random.java Qualifier 코드 검토

    한정자는 두 빈 사이에 모호성을 제거하는 데 사용되며 둘 다 유형에 따라 주입할 수 있습니다. @Random 한정자는 임의의 숫자를 삽입하는 데 사용됩니다.

    @Target({ TYPE, METHOD, PARAMETER, FIELD })
    @Retention(RUNTIME)
    @Documented
    @Qualifier
    public @interface Random {
    
    }
  2. MaxNumber.java Qualifier 코드 검토

    @MaxNumber 한정자 는 허용되는 최대 수를 삽입하는 데 사용됩니다.

    @Target({ TYPE, METHOD, PARAMETER, FIELD })
    @Retention(RUNTIME)
    @Documented
    @Qualifier
    public @interface MaxNumber {
    }
  3. Generator.java 코드 검토

    Generator 클래스는 생산자 메서드를 통해 난수를 생성하여 동일한 값을 통해 최대 가능한 수를 노출합니다. 이 클래스는 애플리케이션 범위이므로 매번 다른 임의의 값을 얻지 못합니다.

    @SuppressWarnings("serial")
    @ApplicationScoped
    public class Generator implements Serializable {
    
        private java.util.Random random = new java.util.Random(System.currentTimeMillis());
    
        private int maxNumber = 100;
    
        java.util.Random getRandom() {
            return random;
        }
    
        @Produces
        @Random
        int next() {
            // a number between 1 and 100
            return getRandom().nextInt(maxNumber - 1) + 1;
        }
    
        @Produces
        @MaxNumber
        int getMaxNumber() {
            return maxNumber;
        }
    }
  4. game .java 코드 검토

    세션 범위의 game 클래스는 애플리케이션의 주요 진입점입니다. 게임 설정 또는 재설정, 사용자의 추측을 캡처 및 검증하고, Cryostats Message를 사용하여 사용자에게 피드백을 제공해야 합니다. 구성 후 라이프사이클 후 메서드를 사용하여 @Random Instance<Integer> metrics에서 임의의 번호를 검색하여 게임 초기화를 수행합니다.

    클래스의 @Named 주석을 확인합니다. 이 주석은 Jakarta Expression Language (이 경우 #{ game} )를 사용하여 Cryostat 뷰에 액세스할 수 있도록 하려면만 필요합니다.

    @SuppressWarnings("serial")
    @Named
    @SessionScoped
    public class Game implements Serializable {
    
        /**
         * The number that the user needs to guess
         */
        private int number;
    
        /**
         * The users latest guess
         */
        private int guess;
    
        /**
         * The smallest number guessed so far (so we can track the valid guess range).
         */
        private int smallest;
    
        /**
         * The largest number guessed so far
         */
        private int biggest;
    
        /**
         * The number of guesses remaining
         */
        private int remainingGuesses;
    
        /**
         * The maximum number we should ask them to guess
         */
        @Inject
        @MaxNumber
        private int maxNumber;
    
        /**
         * The random number to guess
         */
        @Inject
        @Random
        Instance<Integer> randomNumber;
    
        public Game() {
        }
    
        public int getNumber() {
            return number;
        }
    
        public int getGuess() {
            return guess;
        }
    
        public void setGuess(int guess) {
            this.guess = guess;
        }
    
        public int getSmallest() {
            return smallest;
        }
    
        public int getBiggest() {
            return biggest;
        }
    
        public int getRemainingGuesses() {
            return remainingGuesses;
        }
    
        /**
         * Check whether the current guess is correct, and update the biggest/smallest guesses as needed. Give feedback to the user
         * if they are correct.
         */
        public void check() {
            if (guess > number) {
                biggest = guess - 1;
            } else if (guess < number) {
                smallest = guess + 1;
            } else if (guess == number) {
                FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Correct!"));
            }
            remainingGuesses--;
        }
    
        /**
         * Reset the game, by putting all values back to their defaults, and getting a new random number. We also call this method
         * when the user starts playing for the first time using {@linkplain PostConstruct @PostConstruct} to set the initial
         * values.
         */
        @PostConstruct
        public void reset() {
            this.smallest = 0;
            this.guess = 0;
            this.remainingGuesses = 10;
            this.biggest = maxNumber;
            this.number = randomNumber.get();
        }
    
        /**
         * A JSF validation method which checks whether the guess is valid. It might not be valid because there are no guesses left,
         * or because the guess is not in range.
         *
         */
        public void validateNumberRange(FacesContext context, UIComponent toValidate, Object value) {
            if (remainingGuesses <= 0) {
                FacesMessage message = new FacesMessage("No guesses left!");
                context.addMessage(toValidate.getClientId(context), message);
                ((UIInput) toValidate).setValid(false);
                return;
            }
            int input = (Integer) value;
    
            if (input < smallest || input > biggest) {
                ((UIInput) toValidate).setValid(false);
    
                FacesMessage message = new FacesMessage("Invalid guess");
                context.addMessage(toValidate.getClientId(context), message);
            }
        }
    }

부록 A. JBoss EAP를 시작하기 위한 참조 정보

JBoss EAP 사용을 시작하는 데 도움이 되도록 인수, 속성 및 기본 소켓 바인딩을 사용할 수 있습니다. 예를 들어 인수를 사용하여 대체 구성을 기본 JBoss EAP 독립 실행형 서버로 설정할 수 있습니다. 이렇게 하면 요구 사항에 맞게 서버를 구성하는 데 도움이 됩니다.

A.1. 서버 런타임 인수 및 스위치

관리형 도메인의 독립 실행형 서버 및 서버에서 애플리케이션의 시작 스크립트와 함께 특정 서버 런타임 인수를 사용할 수 있습니다. 이 스크립트는 standalone.xml,domain.xmlhost.xml 구성 파일에 정의된 대체 구성으로 서버를 시작할 수 있습니다. 대체 구성에는 대체 소켓 바인딩 세트 또는 보조 구성으로 서버 시작이 포함될 수 있습니다.

서버를 시작하기 전에 터미널에서 도움말 스위치 -h 또는 --help 를 실행하여 사용 가능한 매개변수 목록에 액세스할 수 있습니다.

표 A.1. 런타임 인수 및 스위치에 대한 설명:

인수 또는 전환서버 유형설명

--admin-only

독립 실행형

서버의 실행 중인 유형을 ADMIN_ONLY 로 설정합니다. 이 인수는 관리 인터페이스를 열고 관리 요청을 수락하지만 인수는 다른 런타임 서비스를 시작하거나 사용자 요청을 수락하지 않습니다. 최상의 성능을 위해서는 --start-mode=admin-only 인수를 사용합니다.

--admin-only

domain

호스트 컨트롤러의 실행 중인 유형을 ADMIN_ONLY 로 설정하면 호스트 컨트롤러가 관리 인터페이스를 열고 관리 요청을 수락하지만 호스트 컨트롤러는 서버를 시작하지 않습니다. 도메인의 마스터 호스트 컨트롤러의 경우 슬레이브 호스트 컨트롤러에서 들어오는 연결을 허용합니다.

-b=<value>, -b <value>

독립 실행형 도메인

공용 인터페이스에 대한 바인딩 주소를 구성하는 데 사용할 수 있는 시스템 속성 jboss.bind.address 를 설정합니다. bind 주소는 기본적으로 127.0.0.1 입니다. 다른 인터페이스의 바인딩 주소를 설정하려면 -b<interface>=<value > 항목을 참조하십시오.

-b<interface>=<value>

독립 실행형 도메인

시스템 속성 jboss.bind.address.<interface&gt;를 지정된 값으로 설정합니다. 예를 들어 -bmanagement=IP_ADDRESS.

--backup

domain

이 호스트가 도메인 컨트롤러가 아니더라도 영구 도메인 구성의 사본을 보관합니다.

-c=<config>, -c <config>

독립 실행형

사용할 서버 구성 파일의 이름입니다. 기본값은 standalone.xml 입니다.

-c=<config>, -c <config>

domain

사용할 서버 구성 파일의 이름입니다. 기본값은 domain.xml 입니다.

--cached-dc

domain

호스트가 도메인 컨트롤러가 아니며 부팅 시 도메인 컨트롤러에 연결할 수 없는 경우 도메인 구성의 로컬로 캐시된 복사본을 사용하여 부팅해야 합니다.

--debug [<port>]

독립 실행형

포트를 지정하려면 선택적 인수로 디버그 모드를 활성화합니다. 인수는 시작 스크립트가 인수를 지원하는 경우에만 작동합니다.

-D<name>[=<value>]

독립 실행형 도메인

시스템 속성을 설정합니다.

--domain-config=<config>

domain

사용할 서버 구성 파일의 이름입니다. 기본값은 domain.xml 입니다.

--git-repo

독립 실행형

서버 구성 데이터를 관리하고 유지하는 데 사용되는 Git 리포지토리의 위치입니다. 로컬에 저장하려는 경우 로컬 이거나 URL을 원격 리포지토리에 저장할 수 있습니다.

--git-branch

독립 실행형

사용할 Git 리포지토리의 분기 또는 태그 이름입니다. 기존 분기 또는 태그 이름은 존재하지 않는 경우 생성되지 않으므로 지정해야 합니다. 태그 이름을 사용하는 경우 리포지토리를 분리된 HEAD 상태에 넣습니다. 즉, 향후 커밋은 임의의 분기에 연결되어 있지 않습니다. 태그 이름은 읽기 전용이며 일반적으로 여러 노드에서 구성을 복제해야 할 때 사용됩니다.

--git-auth

독립 실행형

서버가 원격 Git 리포지토리에 연결할 때 사용하는 자격 증명이 포함된 Elytron 구성 파일의 URL입니다. 원격 Git 리포지토리에 인증이 필요한 경우 인수를 사용할 수 있습니다. Elytron은 SSH를 지원하지 않습니다. Elytron은 암호 없이 개인 키를 사용하여 기본 SSH 인증만 지원합니다. 로컬 리포지토리와 함께 인수를 사용할 수 없습니다.

-h, --help

독립 실행형 도메인

도움말 메시지를 표시하고 도움말 인덱스를 종료합니다.

--host-config=<config>

domain

사용할 호스트 구성 파일의 이름입니다. 기본값은 host.xml 입니다.

--interprocess-hc-address=<address>

domain

호스트 컨트롤러가 프로세스 컨트롤러의 통신을 수신할 수 있는 주소입니다.

--interprocess-hc-port=<port>

domain

호스트 컨트롤러가 프로세스 컨트롤러의 통신을 수신할 수 있는 포트입니다.

--master-address=<address>

domain

시스템 속성 jboss.domain.master.address 를 지정된 값으로 설정합니다. 기본 슬레이브 호스트 컨트롤러 구성에서 인수를 사용하여 마스터 호스트 컨트롤러의 주소를 구성할 수 있습니다.

--master-port=<port>

domain

시스템 속성 jboss.domain.master.port 를 지정된 값으로 설정합니다. 기본 슬레이브 호스트 컨트롤러 구성에서 인수를 사용하여 마스터 호스트 컨트롤러에서 네이티브 관리 통신에 사용되는 포트를 구성할 수 있습니다.

--read-only-server-config=<config>

독립 실행형

사용할 서버 구성 파일의 이름입니다. 인수가 원래 파일을 덮어쓰지 않기 때문에 인수가 --server-config-c 와 다릅니다.

--read-only-domain-config=<config>

domain

사용할 도메인 구성 파일의 이름입니다. 인수가 초기 파일을 덮어쓰지 않기 때문에 인수가 --domain-config-c 와 다릅니다.

--read-only-host-config=<config>

domain

사용할 호스트 구성 파일의 이름입니다. 인수가 초기 파일을 덮어쓰지 않기 때문에 인수가 --host-config 와 다릅니다.

-P=<url>, -P <url>, --properties=<url>

독립 실행형 도메인

지정된 URL에서 시스템 속성을 로드합니다.

--pc-address=<address>

domain

프로세스 컨트롤러가 제어하는 프로세스에서 통신을 수신 대기하는 주소입니다.

--pc-port=<port>

domain

프로세스 컨트롤러가 제어하는 프로세스에서 통신을 수신 대기하는 포트입니다.

-S<name>[=<value>]

독립 실행형

보안 속성을 설정합니다.

-secmgr

독립 실행형 도메인

보안 관리자가 설치된 서버를 실행합니다.

--server-config=<config>

독립 실행형

사용할 서버 구성 파일의 이름입니다. standalone.xml 로 기본값입니다.

--start-mode=<mode>

독립 실행형

서버의 시작 모드를 설정합니다. --admin-only 인수에는 인수를 사용할 수 없습니다. 인수와 함께 다음 항목을 사용할 수 있습니다.

  • Normal: 서버가 정상적으로 시작됩니다.
  • admin-only: 서버는 관리 인터페이스에서만 열고 관리 요청을 수락하지만 서버는 다른 런타임 서비스를 시작하거나 최종 사용자 요청을 수락하지 않습니다.
  • 일시 중단 모드에서 서버가 시작되지만 서버는 서버가 다시 시작될 때까지 서비스 요청을 수신하지 않습니다.

-u=<value>, -u <value>

독립 실행형 도메인

서버가 구성 파일의 socket-binding 요소에서 멀티 캐스트 주소를 구성하는 데 사용하는 시스템 속성 jboss.default.multicast.address 를 설정합니다. 기본값은 230.0.0.4 입니다.

-v, -V, --version

독립 실행형 도메인

애플리케이션 서버 버전을 표시하고 종료합니다.

주의

JBoss EAP는 포함된 구성 파일을 설정하여 스위치 동작을 처리합니다. 예를 들면 -b-u 입니다. 스위치에서 제어하는 시스템 속성을 더 이상 사용하지 않도록 구성 파일을 변경하면 system 속성을 start 명령에 추가하지 않습니다.

A.2. 추가 사용자 인수

add-user.sh 스크립트 또는 add-user.metadata 스크립트와 함께 인수를 사용하여 이러한 스크립트가 인증을 위해 속성 파일에 새 사용자를 추가하는 방법을 구성할 수 있습니다.

표 A.2. 추가 사용자 인수 설명

명령줄 인수설명

-a

애플리케이션 영역에서 사용자를 생성합니다. 애플리케이션 영역에서 사용자를 생성하지 않으면 스크립트는 기본적으로 관리 영역에 사용자를 생성합니다.

-dc <value>

속성 파일이 포함된 도메인 구성 디렉터리입니다. 인수를 생략하면 스크립트는 EAP_HOME/domain/configuration/ 을 기본 디렉터리로 설정합니다.

-sc <value>

속성 파일이 포함된 대체 독립 실행형 서버 구성 디렉터리입니다. 인수를 생략하면 스크립트는 EAP_HOME/standalone/configuration/ 을 기본 디렉터리로 설정합니다.

-up, --user-properties <value>

대체 사용자 속성 파일의 이름입니다. 파일의 절대 경로를 설정하거나 -sc 또는 -dc 인수와 함께 인수를 사용하여 대체 구성 디렉터리를 설정하여 파일 이름을 지정할 수 있습니다.

-g, --group <value>

사용자에게 할당할 쉼표로 구분된 그룹 목록입니다.

-gp, --group-properties <value>

대체 그룹 속성 파일의 이름입니다. 파일의 절대 경로를 설정하거나 -sc 또는 -dc 인수와 함께 인수를 사용하여 대체 구성 디렉터리를 설정하여 파일 이름을 지정할 수 있습니다.

-p, --password <value>

사용자의 암호입니다.

-u, --user <value>

사용자의 이름입니다. 사용자 이름은 임의의 숫자 및 순서로 다음 문자만 포함할 수 있습니다.

  • 영숫자 (a-z, A-Z, 0-9)
  • 대시(-), 마침표(.), 쉼표(,), at sign(@)
  • 백슬래시(\)
  • 동일 (=)

-r, --realm <value>

관리 인터페이스를 보호하는 데 사용되는 영역의 이름입니다. 생략하면 기본값은 ManagementRealm 입니다.

-s, --silent

콘솔에 대한 출력 없이 add-user 스크립트를 실행합니다.

-e, --enable

사용자를 활성화합니다.

-d, --disable

사용자를 비활성화합니다.

-cw, --confirm-warning

대화형 모드에서 경고를 자동으로 확인합니다.

-h, --help

add-user 스크립트에 대한 사용 정보를 표시합니다.

-ds, --display-secret

비대화형 모드로 시크릿 값을 출력합니다.

A.3. 인터페이스 속성

인터페이스 속성을 사용하여 JBoss EAP 인터페이스를 구성할 수 있습니다.

참고

JBoss EAP가 관리 모델에 나열된 순서에 테이블 표시의 속성 이름입니다. XML에 표시되는 대로 요소를 보려면 EAP_HOME/docs/schema/wildfly-config_5_0.xsd 에 있는 스키마 정의 파일을 참조하십시오. XML 요소 목록은 관리 모델에 표시되는 것과 달라야 합니다.

표 A.3. 인터페이스 특성에 대한 설명:

인터페이스 속성설명

Any

선택한 중첩된 기준 집합의 인터페이스가 하나 이상 충족되어야 하지만 반드시 all이 아니도록 지정합니다.

any-address

인터페이스를 사용하는 소켓에 와일드카드 주소를 바인딩하는 빈 속성입니다. 속성에는 다음과 같은 구성 옵션이 있습니다.

  • 속성은 IPv6 와일드카드 주소(::)를 기본값으로 사용합니다. java.net.preferIPv4Stack 시스템 속성을 true 로 설정하면 소켓에서 IPv4 와일드카드 주소(0.0.0.0)를 사용합니다.
  • 소켓이 듀얼 스택 시스템의 IPv6 anylocal 주소에 바인딩되는 경우 소켓은 IPv6 및 IPv4 트래픽을 모두 허용합니다.
  • 소켓이 IPv4(IPv4-mapped)에 바인드되는 경우 소켓은 IPv4 트래픽만 허용합니다.

inet-address

IPv6 또는 IPv4 점선 표기법의 IP 주소 또는 IP 주소로 확인되는 호스트 이름을 지정합니다.

link-local-address

인터페이스에 링크 로컬 주소가 포함되어 있는지에 대한 기준을 지정하는 빈 속성입니다.

loopback

인터페이스가 루프백 인터페이스로 식별되는지에 대한 기준을 지정하는 빈 속성입니다.

loopback-address

시스템의 루프백 인터페이스에 구성되지 않은 루프백 주소입니다. 인터페이스에 IP 주소가 없는 NIC가 포함되어 있어도 인터페이스에서 특성 값을 사용하므로 속성은 inet-address 유형과 다릅니다.

멀티 캐스트

인터페이스에서 멀티 캐스트를 지원하는지의 기준을 지정하는 빈 속성입니다.

name

인터페이스의 이름입니다.

nic

네트워크 인터페이스의 이름(예: eth0,eth1 또는 lo)입니다.

NIC-match

시스템에서 사용 가능한 인터페이스로 사용 가능한 네트워크 인터페이스 이름과 일치하는 정규식입니다.

해당 없음

인터페이스가 충족되지 않아야 하는 선택 기준을 나타내는 속성입니다.

point-to-point

인터페이스가 점대점 인터페이스로 식별되는지에 대한 기준을 지정하는 빈 속성입니다.

public-address

인터페이스에 공개적으로 라우팅 가능한 주소가 포함되어 있는지에 대한 기준을 지정하는 빈 속성입니다.

site-local-address

인터페이스에 사이트 로컬 주소가 포함되어 있는지에 대한 기준을 지정하는 빈 속성입니다.

subnet-match

네트워크 IP 주소와 슬래시 표기법으로 작성된 주소의 네트워크 접두사의 비트 수(예: 192.168.0.0/16 )를 지정합니다.

up

인터페이스가 up으로 찾을 수 있는지에 대한 기준을 지정하는 빈 속성입니다.

가상

인터페이스에 가상 인터페이스로 식별되는지에 대한 기준을 지정하는 빈 속성입니다.

A.4. 소켓 바인딩 속성

소켓 바인딩 속성을 사용하여 JBoss EAP 서버의 소켓 바인딩을 구성할 수 있습니다.

다음 소켓 바인딩 유형에 대한 특정 속성이 있습니다.

  • 인바운드 소켓 바인딩
  • 원격 아웃 바운드 소켓 바인딩
  • 로컬 아웃 바운드 소켓 바인딩
참고

JBoss EAP가 관리 모델에 나열된 순서에 테이블 표시의 속성 이름입니다. XML에 표시되는 대로 요소를 보려면 EAP_HOME/docs/schema/wildfly-config_5_0.xsd 에 있는 스키마 정의 파일을 참조하십시오. XML 요소 목록은 관리 모델에 표시되는 것과 달라야 합니다.

표 A.4. 인바운드 소켓 바인딩, socket-binding, 속성에 대한 설명:

속성설명

client-mapping

인바운드 소켓 바인딩에 대한 클라이언트 매핑을 지정합니다. 인바운드 소켓에 연결하는 클라이언트는 매핑에 지정된 대상 주소를 사용해야 합니다. 이 주소는 아웃 바운드 인터페이스와 일치합니다. 인바운드 소켓 바인딩과 함께 client-mapping 속성을 사용하면 네트워크 주소 변환 또는 여러 네트워크 인터페이스에 바인딩을 포함하는 고급 네트워크 토폴로지를 적용할 수 있습니다. 선언된 순서대로 각 매핑을 평가해야 합니다. 즉, 첫 번째 성공적인 일치는 매핑의 대상을 결정합니다.

fixed-port

특성을 사용하여 포트 값이 고정되어야 하는지 확인합니다. 소켓 그룹의 다른 소켓에 숫자 오프셋을 적용한 경우에도 속성을 사용할 수 있습니다.

인터페이스

소켓이 바인딩되는 인터페이스의 이름을 설정하는 속성입니다. 속성을 사용하여 멀티 캐스트 소켓에서 수신해야 하는 인터페이스를 설정할 수도 있습니다. 선언된 인터페이스를 정의하지 않으면 속성은 enclosing 소켓 바인딩 그룹의 default-interface 값을 사용합니다.

multicast-address

소켓이 멀티 캐스트 트래픽을 수신하는 멀티 캐스트 주소입니다. 속성 값을 지정하지 않으면 멀티캐스트 기능을 수신하도록 소켓을 구성하지 않습니다.

multicast-port

소켓이 멀티 캐스트 트래픽을 수신하는 포트입니다. multicast-address 특성을 구성한 경우 특성을 구성해야 합니다.

name

소켓 이름을 설정해야 합니다. 소켓 구성 정보에 액세스해야 하는 서비스는 이름을 사용하여 소켓을 찾을 수 없습니다.

port

소켓이 바인딩되는 포트 수입니다. 모든 포트 값을 증가하거나 감소하기 위해 port-offset 을 적용하도록 서버를 구성한 경우 특성 값을 재정의해야 합니다.

표 A.5. 원격 아웃바운드 소켓 바인딩, remote-destination-outbound-socket-binding, 속성에 대한 설명:

속성설명

fixed-source-port

소켓 그룹의 다른 아웃바운드 소켓에 숫자 오프셋을 적용한 경우에도 포트 값이 수정되어야 하는지 여부를 결정합니다.

host

아웃바운드 소켓이 연결되는 원격 대상의 호스트 이름 또는 IP 주소입니다.

port

아웃바운드 소켓이 연결되는 원격 대상의 포트 번호입니다.

source-interface

JBoss EAP가 아웃 바운드 소켓의 소스 주소에 사용하는 인터페이스의 이름입니다.

source-port

JBoss EAP가 아웃 바운드 소켓의 소스 포트로 사용하는 포트 번호입니다.

표 A.6. 로컬 아웃바운드 소켓 바인딩, local-destination-outbound-socket-binding, 속성에 대한 설명:

속성설명

fixed-source-port

소켓 그룹의 다른 아웃바운드 소켓에 숫자 오프셋을 적용한 경우에도 포트 값이 수정되어야 하는지 여부를 결정합니다.

socket-binding-ref

JBoss EAP에서 연결 아웃 바운드 소켓의 포트를 결정하는 데 사용하는 로컬 소켓 바인딩의 이름입니다.

source-interface

JBoss EAP가 아웃 바운드 소켓의 소스 주소에 사용하는 인터페이스의 이름입니다.

source-port

JBoss EAP가 아웃 바운드 소켓의 소스 포트로 사용하는 포트 번호입니다.

A.5. 기본 소켓 바인딩

각 소켓 바인딩 그룹에 대해 기본 소켓 바인딩을 설정할 수 있습니다.

JBoss EAP에는 다음과 같은 5가지 유형의 기본 소켓 바인딩이 있습니다.

  • standard-sockets
  • ha-sockets
  • full-sockets
  • full-ha-sockets
  • load-balancer-sockets

표 A.7. 기본 표준 소켓 소켓 바인딩에 대한 설명입니다.

소켓 바인딩포트설명

ajp

8009

Apache JServ 프로토콜. HTTP 클러스터링 및 로드 밸런싱에 사용됩니다.

http

8080

배포된 웹 애플리케이션의 기본 포트입니다.

https

8443

배포된 웹 애플리케이션과 클라이언트 간의 SSL 암호화 연결.

management-http

9990

관리 계층과의 HTTP 통신에 사용됩니다.

management-https

9993

관리 계층과의 HTTPS 통신에 사용됩니다.

txn-recovery-environment

4712

JTA 트랜잭션 복구 관리자입니다.

txn-status-manager

4713

JTA / JTS 트랜잭션 관리자입니다.

표 A.8. 기본 ha-sockets 소켓 바인딩에 대한 설명입니다.

소켓 바인딩포트멀티 캐스트 포트설명

ajp

8009

 

Apache JServ 프로토콜. HTTP 클러스터링 및 로드 밸런싱에 사용됩니다.

http

8080

 

배포된 웹 애플리케이션의 기본 포트입니다.

https

8443

 

배포된 웹 애플리케이션과 클라이언트 간의 SSL 암호화 연결.

Cryostat-mping

 

45700

멀티 캐스트. HA 클러스터에서 초기 멤버십을 검색하는 데 사용됩니다.

jgroups-tcp

7600

 

TCP를 사용하는 HA 클러스터에서 유니캐스트 피어 검색.

jgroups-udp

55200

45688

UDP를 사용하는 HA 클러스터에서 멀티 캐스트 피어 검색.

management-http

9990

 

관리 계층과의 HTTP 통신에 사용됩니다.

management-https

9993

 

관리 계층과의 HTTPS 통신에 사용됩니다.

modcluster

 

23364

JBoss EAP와 HTTP 로드 밸런서 간의 통신을 위한 멀티 캐스트 포트입니다.

txn-recovery-environment

4712

 

JTA 트랜잭션 복구 관리자입니다.

txn-status-manager

4713

 

JTA / JTS 트랜잭션 관리자입니다.

표 A.9. 기본 full-sockets 소켓 바인딩에 대한 설명입니다.

소켓 바인딩포트설명

ajp

8009

Apache JServ 프로토콜. HTTP 클러스터링 및 로드 밸런싱에 사용됩니다.

http

8080

배포된 웹 애플리케이션의 기본 포트입니다.

https

8443

배포된 웹 애플리케이션과 클라이언트 간의 SSL 암호화 연결.

iiop

3528

JTS 트랜잭션 및 기타 ORB 종속 서비스를 위한 CORBA 서비스.

iiop-ssl

3529

SSL 암호화 CORBA 서비스.

management-http

9990

관리 계층과의 HTTP 통신에 사용됩니다.

management-https

9993

관리 계층과의 HTTPS 통신에 사용됩니다.

txn-recovery-environment

4712

JTA 트랜잭션 복구 관리자입니다.

txn-status-manager

4713

JTA / JTS 트랜잭션 관리자입니다.

표 A.10. 기본 full-ha-sockets 소켓 바인딩에 대한 설명입니다.

이름포트멀티 캐스트 포트설명

ajp

8009

 

Apache JServ 프로토콜. HTTP 클러스터링 및 로드 밸런싱에 사용됩니다.

http

8080

 

배포된 웹 애플리케이션의 기본 포트입니다.

https

8443

 

배포된 웹 애플리케이션과 클라이언트 간의 SSL 암호화 연결.

iiop

3528

 

JTS 트랜잭션 및 기타 ORB 종속 서비스를 위한 CORBA 서비스.

iiop-ssl

3529

 

SSL 암호화 CORBA 서비스.

Cryostat-mping

 

45700

멀티 캐스트. HA 클러스터에서 초기 멤버십을 검색하는 데 사용됩니다.

jgroups-tcp

7600

 

TCP를 사용하는 HA 클러스터에서 유니캐스트 피어 검색.

jgroups-udp

55200

45688

UDP를 사용하는 HA 클러스터에서 멀티 캐스트 피어 검색.

management-http

9990

 

관리 계층과의 HTTP 통신에 사용됩니다.

management-https

9993

 

관리 계층과의 HTTPS 통신에 사용됩니다.

modcluster

 

23364

JBoss EAP와 HTTP 로드 밸런서 간의 통신을 위한 멀티 캐스트 포트입니다.

txn-recovery-environment

4712

 

JTA 트랜잭션 복구 관리자입니다.

txn-status-manager

4713

 

JTA / JTS 트랜잭션 관리자입니다.

표 A.11. 기본 load-balancer-sockets 소켓 바인딩에 대한 설명입니다.

이름포트멀티 캐스트 포트설명

http

8080

 

배포된 웹 애플리케이션의 기본 포트입니다.

https

8443

 

배포된 웹 애플리케이션과 클라이언트 간의 SSL 암호화 연결.

management-http

9990

 

관리 계층과의 HTTP 통신에 사용됩니다.

management-https

9993

 

관리 계층과의 HTTPS 통신에 사용됩니다.

mcmp-management

8090

 

라이프사이클 이벤트를 전송하기 위해 MCMP(Mod-Cluster Management Protocol) 연결의 포트입니다.

modcluster

 

23364

JBoss EAP와 HTTP 로드 밸런서 간의 통신을 위한 멀티 캐스트 포트입니다.

3장. JBoss EAP 8.0의 패키지 네임스페이스 변경

이 섹션에서는 JBoss EAP 8.0의 패키지 네임스페이스 변경 사항에 대한 추가 정보를 제공합니다. JBoss EAP 8.0은 자카르타 EE 10 및 자카르타 EE 10 API의 기타 여러 구현을 완벽하게 지원합니다. Jakarta EE 10 for JBoss EAP 8.0에서 지원하는 중요한 변경 사항은 패키지 네임스페이스 변경입니다.

3.1. javax에서 jakarta 네임스페이스로 변경

자카르타 EE 8과 EE 10의 주요 차이점은 EE API Java 패키지 이름을 javax.* 에서 jakarta *로 바꾸는 것입니다. 이는 Java EE가 Eclipse Foundation으로 이동하고 자카르타 EE 설정을 따릅니다.

이 네임스페이스 변경에 맞게 애플리케이션을 JBoss EAP 7에서 JBoss EAP 8로 마이그레이션하는 가장 큰 작업입니다. 애플리케이션을 자카르타 EE 10으로 마이그레이션하려면 다음 단계를 완료해야 합니다.

  • import 구문 또는 기타 소스 코드에서 javax 패키지에서 jakarta 패키지로 EE API 클래스를 사용하는 것을 업데이트합니다.
  • jakarta 로 시작하도록 EE 지정 시스템 속성 또는 javax 로 시작하는 기타 구성 속성의 이름을 업데이트합니다.
  • EE 인터페이스의 애플리케이션 제공 구현 또는 java.util.ServiceLoader 메커니즘을 사용하여 부트스트랩된 추상 클래스의 경우 구현 클래스를 META-INF/services/ javax에서 META-INF/services/jakarta로 식별하는 리소스의 이름을 변경합니다.[rest_of_name]META-INF/services/jakarta.[rest_of_name] 로 변경합니다.
참고

Red Hat Migration Toolkit은 애플리케이션 소스 코드에서 네임스페이스를 업데이트하는 데 도움이 될 수 있습니다. 자세한 내용은 How to use Red Hat Migration Toolkit for Auto-Migration of an Application to the Jakarta EE 10 Namespace. 소스 코드 마이그레이션이 옵션이 아닌 경우 Open Source Eclipse Transformer 프로젝트는 기존 Java 아카이브를 javax 네임스페이스에서 jakarta 네임스페이스로 변환하는 바이트 코드 변환 도구를 제공합니다.

참고

이 변경 사항은 Java SE의 일부인 javax 패키지에는 영향을 미치지 않습니다.

추가 리소스





2024-02-08에 최종 업데이트된 문서

법적 공지

Copyright © 2024 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.