시작하기 가이드

Red Hat JBoss Enterprise Application Platform 7.4

Red Hat JBoss Enterprise Application Platform을 다운로드, 설치, 시작, 중지 및 유지 관리하는 방법을 설명합니다.

Red Hat Customer Content Services

초록

이 가이드의 목적은 JBoss EAP를 사용하여 신속하게 시작하고 실행할 수 있도록 돕는 것입니다. 이 가이드에서는 JBoss EAP의 기본 설치, 관리 및 구성과 같은 관리 작업에 대해 설명합니다. 이 가이드는 또한 개발자가 JBoss EAP 빠른 시작을 사용하여 Jakarta EE 애플리케이션 작성을 시작하는 데 도움이 됩니다. 자세한 내용은 전체 JBoss EAP 설명서 모음 을 참조하십시오.

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

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

절차

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

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

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 용어를 교체하기 위해 최선을 다하고 있습니다. 먼저 마스터(master), 슬레이브(slave), 블랙리스트(blacklist), 화이트리스트(whitelist) 등 네 가지 용어를 교체하고 있습니다. 이러한 변경 작업은 작업 범위가 크므로 향후 여러 릴리스에 걸쳐 점차 구현할 예정입니다. 자세한 내용은 CTO Chris Wright의 메시지를 참조하십시오.

1장. JBoss EAP 관리

1.1. JBoss EAP 다운로드 및 설치

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

1.1.1. JBoss EAP 다운로드

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

사전 요구 사항

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

절차

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

    압축 파일이 시스템에 다운로드됩니다.

추가 리소스

1.1.2. JBoss EAP 설치

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

사전 요구 사항

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

절차

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

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

      $ unzip jboss-eap-7.4.0.zip
    2. Windows Server에서 압축 파일을 마우스 오른쪽 버튼으로 클릭하고 압축 풀기 를 선택합니다.

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

추가 리소스

  • 그래픽 설치 프로그램 또는 RPM 패키지 설치 방법을 사용하여 JBoss EAP를 설치하는 방법에 대한 자세한 내용은 설치 가이드 를 참조하십시오.

1.2. JBoss EAP 시작 및 중지

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

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

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

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

JBoss EAP는 다음 플랫폼에서 지원됩니다.

  • Red Hat Enterprise Linux
  • Windows Server
  • Oracle Solaris

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

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

참고

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

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

사전 요구 사항

  • JBoss EAP 설치.

절차

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

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

추가 리소스

1.2.2. 관리형 도메인의 서버에 대해 JBoss EAP 시작

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

JBoss EAP는 다음 플랫폼에서 지원됩니다.

  • Red Hat Enterprise Linux
  • Windows Server
  • Oracle Solaris

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

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

사전 요구 사항

  • JBoss EAP 설치.

절차

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

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

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

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

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

추가 리소스

  • 관리형 도메인 구성 파일에 대한 자세한 내용은 관리형 도메인 구성 파일 섹션을 참조하십시오.
  • 사용 가능한 모든 시작 스크립트 인수와 해당 용도의 전체 목록은 --help 인수를 사용하거나 Server Runtime Arguments 섹션을 참조하십시오.

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 관리

JBoss EAP는 독립 실행형 서버 또는 관리형 도메인당 하나의 구성 파일과 함께 간소화된 구성을 사용합니다. 독립 실행형 서버의 기본 구성은 EAP_HOME/standalone/configuration/standalone.xml 파일에 저장되며 관리형 도메인의 기본 구성은 EAP_HOME/domain/configuration/domain.xml 파일에 저장됩니다. 또한 호스트 컨트롤러의 기본 구성은 EAP_HOME/domain/configuration/host.xml 파일에 저장됩니다.

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

1.3.1. 사용자 관리

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

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

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

이 가이드에서는 즉시 사용 가능한 인증을 위해 새 사용자를 속성 파일에 추가하기 위한 유틸리티인 추가 사용자 스크립트를 사용하여 JBoss EAP에 대한 간단한 사용자 관리에 대해 설명합니다.

LDAP 또는 RBAC(역할 기반 액세스 제어)와 같은 고급 인증 및 권한 부여 옵션은 JBoss EAP 보안 아키텍처Core Management Authentication 섹션을 참조하십시오.

1.3.1.1. 관리 사용자 추가

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

    $ EAP_HOME/bin/add-user.sh
    참고

    Windows Server의 경우 EAP_HOME\bin\add-user.bat 스크립트를 사용합니다.

  2. ENTER를 눌러 기본 옵션 a 를 선택하여 관리 사용자를 추가합니다.

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

  3. 원하는 사용자 이름과 암호를 입력합니다. 암호를 확인하라는 메시지가 표시됩니다.

    참고

    사용자 이름에는 어떤 숫자와 순서에 관계없이 다음 문자만 사용할 수 있습니다.

    • 영숫자 문자(a-z, A-Z, 0-9)
    • 대시(-), 마침표(.), 쉼표(,), 기호(@)
    • 백슬래시 (\)
    • 같음 (=)

    기본적으로 JBoss EAP는 취약한 암호를 허용하지만 경고를 발행합니다.

    이 기본 동작 변경에 대한 자세한 내용은 JBoss EAP 구성 가이드추가 사용자 유틸리티 암호 제한 설정 섹션을 참조하십시오.

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

    ManagementRealm 에 추가해야 하는 한 가지 유형의 사용자는 JBoss EAP의 다른 인스턴스를 나타내는 사용자로서, 클러스터의 구성원으로 조인하도록 인증할 수 있어야 합니다. 이 경우 이 프롬프트에 yes 로 응답하고, 다른 구성 파일에 추가해야 하는 사용자의 암호를 나타내는 해시된 시크릿 값이 제공됩니다.

매개 변수를 add-user 스크립트에 전달하여 비대화형으로 사용자를 만들 수도 있습니다. 암호는 로그 및 기록 파일에 표시되므로 공유 시스템에서는 이 방법을 사용하지 않는 것이 좋습니다. 자세한 내용은 Add-User Utility Non-Interactively 에서 참조하십시오.

1.3.1.2. Add-User Utility를 비대화식으로 실행

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

주의

암호는 로그 및 기록 파일에 표시되므로 공유 시스템에서는 이 방법을 사용하지 않는 것이 좋습니다.

여러 그룹에 의존하는 사용자 만들기

다음 명령은 guestmgmt group 그룹이 있는 관리 사용자mgmt user1 을 추가합니다.

$ 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 인수를 사용하거나 Add-user 인수 섹션을 참조하십시오.

1.3.2. 관리 인터페이스

1.3.2.1. 관리 CLI

관리 CLI(명령줄 인터페이스)는 JBoss EAP를 위한 명령줄 관리 도구입니다.

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

ls,cd, pwd 와 같은 많은 터미널 명령을 사용할 수 있습니다. 관리 CLI는 탭 완료도 지원합니다.

명령 및 작업, 구문 및 배치 모드에서 실행을 포함한 관리 CLI 사용에 대한 자세한 내용은 JBoss EAP 관리 CLI 가이드를 참조하십시오.

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

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

실행 중인 서버에 연결
connect

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

도움말 표시

일반적인 도움말에는 다음 명령을 사용합니다.

help

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

deploy --help
관리 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)
시스템 설정 업데이트

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

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

관리형 도메인에서 실행할 때 관리 CLI를 사용하여 서버를 시작하고 중지할 수도 있습니다.

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

1.3.2.2. 관리 콘솔

관리 콘솔은 JBoss EAP용 웹 기반 관리 도구입니다.

관리 콘솔을 사용하여 서버를 시작 및 중지하고, 애플리케이션을 배포 및 배포 취소하고, 시스템 설정을 조정하며, 서버 구성을 영구적으로 수정합니다. 관리 콘솔에는 현재 사용자가 변경한 경우 서버 인스턴스를 다시 시작하거나 다시 로드해야 하는 경우 실시간 알림과 함께 관리 작업을 수행할 수 있는 기능도 있습니다.

관리형 도메인에서 동일한 도메인의 서버 인스턴스 및 서버 그룹은 도메인 컨트롤러의 관리 콘솔에서 중앙에서 관리할 수 있습니다.

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

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

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

1.3.3. 설정 파일

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

독립 실행형 구성 파일은 EAP_HOME/standalone/configuration/ 디렉터리에 있습니다. 사전 정의된 5개의 프로필(기본값,ha, full,full -ha,load-balancer )마다 별도의 파일이 있습니다.

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

설정 파일목적

standalone.xml

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

standalone-ha.xml

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

standalone-full.xml

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

standalone-full-ha.xml

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

standalone-load-balancer.xml

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

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

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

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

관리형 도메인 구성 파일은 EAP_HOME/domain/configuration/ 디렉터리에 있습니다.

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

설정 파일목적

domain.xml

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

host.xml

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

host-master.xml

이 파일에는 서버를 마스터 도메인 컨트롤러로 실행하는 데 필요한 구성 세부 사항만 포함되어 있습니다.

host-slave.xml

이 파일에는 서버를 관리형 도메인 호스트 컨트롤러로 실행하는 데 필요한 구성 세부 정보만 포함되어 있습니다.

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

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

1.3.3.3. 구성 데이터 백업

JBoss EAP 서버 구성을 나중에 복원하려면 다음 위치에 있는 항목을 백업해야 합니다.

  • EAP_HOME/standalone/configuration/

    • 독립 실행형 서버에 대한 사용자 데이터, 서버 구성 및 로깅 설정을 저장하도록 전체 디렉터리를 백업합니다.
  • EAP_HOME/domain/configuration/

    • 전체 디렉터리를 백업하여 사용자 및 프로필 데이터, 도메인 및 호스트 구성, 관리형 도메인에 대한 로깅 설정을 저장합니다.
  • EAP_HOME/modules/

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

    • 사용자 지정 환영 콘텐츠를 백업합니다.
  • EAP_HOME/bin/

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

1.3.3.4. 설정 파일 스냅 샷

서버 유지 관리 및 관리를 지원하기 위해 JBoss EAP는 시작 시 원본 구성 파일의 타임스탬프 버전을 생성합니다. 관리 작업에서 추가 구성을 변경하면 원본 파일이 자동으로 백업되고 참조 및 롤백을 위해 인스턴스의 작업 복사본이 보존됩니다. 또한 현재 서버 구성의 시점 사본인 구성 스냅샷을 만들 수도 있습니다. 이러한 스냅샷을 관리자가 저장하고 로드할 수 있습니다.

다음 예제에서는 standalone.xml 파일을 사용하지만 동일한 프로세스는 domain.xml 및 host. 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. 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 인수를 사용하여 구성 파일을 지정합니다.

1.3.3.5. 속성 교체

JBoss EAP를 사용하면 표현식을 사용하여 구성에서 리터럴 값 대신 교체 가능한 속성을 정의할 수 있습니다. 표현식은 ${PARAMETER:DEFAULT_VALUE} 형식을 사용합니다. 지정된 매개 변수가 설정되면 매개 변수의 값이 사용됩니다. 그렇지 않으면 제공된 기본값이 사용됩니다.

표현식을 해결하는 데 지원되는 소스는 시스템 속성, 환경 변수 및 자격 증명 모음입니다. 배포 전용의 경우 소스는 배포 아카이브의 META-INF/jboss.properties 파일에 나열된 속성이 될 수 있습니다. 하위 배포를 지원하는 배포 유형의 경우 속성 파일이 외부 배포에 있는 경우(예: EAR) 모든 하위 배포로 해결 범위가 지정됩니다. 속성 파일이 하위 배포에 있는 경우 해결 범위는 해당 하위 배포로만 지정됩니다.

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

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

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

$ EAP_HOME/bin/standalone.sh -Djboss.bind.address=IP_ADDRESS
중첩 표현식

표현식을 중첩하여 고정 값 대신 고급 표현식을 사용할 수 있습니다. 중첩된 식의 형식은 일반 표현식의 형식과 같지만 하나의 표현식은 다른 표현식에 포함됩니다. 예를 들면 다음과 같습니다.

${SYSTEM_VALUE_1${SYSTEM_VALUE_2}}

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

중첩 표현식을 사용할 수 있는 예제는 데이터 소스 정의에 사용된 암호가 마스킹되는 경우입니다. 데이터 소스의 구성에는 다음 행이 있을 수 있습니다.

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

ds_ExampleDS 값은 중첩된 표현식을 사용하여 시스템 속성(datasource_name)으로 바꿀 수 있습니다. 데이터 소스에 대한 구성은 대신 다음 행을 가질 수 있습니다.

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

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

설명자 기반 속성 교체

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

설명자 기반 속성 교체는 설명자를 기반으로 하는 속성을 대체하여 애플리케이션 및 빌드 체인에서 환경에 대한 가정을 제거할 수 있습니다. 환경별 구성은 주석 또는 빌드 시스템 스크립트가 아닌 배포 설명자에 지정할 수 있습니다. 명령줄에서 파일 또는 매개 변수로 구성을 제공할 수 있습니다.

the ee 하위 시스템에는 속성 교체가 적용되는지 여부를 제어하는 여러 플래그가 있습니다.

JBoss 특정 설명자 교체는 jboss-descriptor-property-replacement 플래그로 제어되며 기본적으로 활성화되어 있습니다. 활성화된 경우 다음 배포 설명자에서 속성을 바꿀 수 있습니다.

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

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

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

Jakarta EE 설명자 교체는 spec-descriptor-property-replacement 플래그로 제어되며 기본적으로 비활성화되어 있습니다. 활성화된 경우 다음 배포 설명자에서 속성을 바꿀 수 있습니다.

  • 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)

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

JBoss EAP에는 인터페이스, 소켓 바인딩 및 IPv6 주소가 있어 구성을 더 쉽게 수행할 수 있습니다. 이러한 각 네트워크 및 포트 구성에 대한 자세한 정보를 사용하여 JBoss EAP를 성공적으로 실행합니다.

1.4.1. 인터페이스

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

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

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

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이 표시됩니다.

추가 리소스

  • 사용 가능한 모든 인터페이스 선택 기준 목록은 Interface Attributes 섹션을 참조하십시오.
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. 인터페이스 속성 업데이트

이 예제에서는 공용 인터페이스의 기본 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.xml 및 domain.xml 구성 파일에서 확인할 수 있습니다. 독립 실행형 서버에는 하나의 소켓 바인딩 그룹만 포함되어 있지만, 관리형 도메인에는 여러 그룹이 포함될 수 있습니다. 관리형 도메인에서 각 서버 그룹에 대해 소켓 바인딩 그룹을 생성하거나 여러 서버 그룹 간에 소켓 바인딩 그룹을 공유할 수 있습니다.

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

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

인바운드 소켓 바인딩
socket-binding 요소는 JBoss EAP 서버에 대한 인바운드 소켓 바인딩을 구성하는 데 사용됩니다. 기본 JBoss EAP 구성에서는 미리 구성된 몇 가지 소켓 바인딩 요소를 제공합니다(예: HTTP 및 HTTPS 트래픽). 또 다른 예는 JBoss EAP에 대한 메시징 구성의 브로드캐스트 그룹 섹션에서 확인할 수 있습니다.
원격 아웃바운드 소켓 바인딩
remote-destination-outbound-socket-binding 요소는 JBoss EAP 서버로 원격 대상에 대한 아웃바운드 소켓 바인딩을 구성하는 데 사용됩니다. 기본 JBoss EAP 구성에서는 메일 서버에 사용할 수 있는 원격 대상 소켓 바인딩의 예를 제공합니다.
로컬 아웃바운드 소켓 바인딩

local-destination-outbound-socket-binding 요소는 JBoss EAP 서버로 로컬인 대상에 대한 아웃바운드 소켓 바인딩을 구성하는 데 사용됩니다. 이러한 유형의 소켓 바인딩은 일반적으로 사용되지 않습니다.

이 요소에 대한 속성은 로컬 아웃 바운드 소켓 바인딩 속성 표에서 찾을 수 있습니다.

추가 리소스

1.4.2.1. 관리 포트

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

관리 콘솔에 HTTPS를 활성화하면 기본적으로 포트 9993 이 사용됩니다.

1.4.2.2. 기본 소켓 바인딩

JBoss EAP에는 사전 정의된 5개의 프로필(default,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-load-balancer.xml)은 해당 프로필에서 사용하는 기술에 대한 소켓 바인딩을 정의합니다.

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

<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">
        <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="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="txn-recovery-environment" port="4712"/>
        <socket-binding name="txn-status-manager" port="4713"/>
        <outbound-socket-binding name="mail-smtp">
            <remote-destination host="${jboss.mail.server.host:localhost}" port="${jboss.mail.server.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. 소켓 바인딩 구성

소켓 바인딩을 정의할 때 포트인터페이스 속성은 물론 multicast -address 및 multicast -port 와 같은 멀티캐스트 설정을 구성할 수 있습니다. 사용 가능한 모든 소켓 바인딩 속성에 대한 자세한 내용은 소켓 바인딩 속성 섹션을 참조하십시오.

절차

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

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

    참고

    독립 실행형 서버로 실행하는 경우 이 단계를 수행할 수 없습니다.

    /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

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.bat )을 편집합니다.
    • 관리형 도메인에서 실행하는 경우 EAP_HOME/bin/domain.conf 파일(또는 Windows Server의 domain.conf.bat )을 편집합니다.
  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 -Djava.net.preferIPv4Stack=false"
   JAVA_OPTS="$JAVA_OPTS -Djboss.modules.system.pkgs=$JBOSS_MODULES_SYSTEM_PKGS -Djava.awt.headless=true"
   JAVA_OPTS="$JAVA_OPTS -Djava.net.preferIPv6Addresses=true"
else

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 서버를 설치하고 관리 사용자를 생성한 경우 서버 구성을 최적화하는 것이 좋습니다.

성능 튜닝 가이드 의 정보를 검토하여 프로덕션 환경에 애플리케이션을 배포할 때 일반적인 문제를 방지하기 위해 서버 구성을 최적화하는 방법에 대한 정보를 확인하십시오. 일반적인 최적화에는 ulimit 설정, 가비지 컬렉션 활성화,Java 힙 덤프 생성, 스레드 풀 크기 조정 등이 있습니다.

또한 제품의 릴리스에 기존 패치를 적용하는 것이 좋습니다. EAP의 각 패치에는 수많은 버그 수정이 포함되어 있습니다. 자세한 내용은 JBoss EAP 패치 및 업그레이드 가이드에서 JBoss EAP 패치를 참조하십시오.

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

2.1. 개요

이 가이드에서는 Red Hat CodeReady Studio 및 JBoss EAP 7 빠른 시작 예제를 사용하여 애플리케이션 개발을 시작하는 방법에 대해 설명합니다.

Red Hat CodeReady Studio는 JBoss 애플리케이션 개발 플러그인을 통합하는 Eclipse 기반의 IDE(통합 개발 환경)입니다. Red Hat CodeReady Studio는 JBoss 전용 마법사의 가용성과 JBoss EAP 서버에 애플리케이션을 배포하는 기능으로 애플리케이션 개발을 지원할 수 있습니다. 많은 빠른 시작 코드 예제가 제공되어 사용자가 다양한 Jakarta EE 기술을 사용하여 애플리케이션 개발을 시작할 수 있도록 JBoss EAP 7이 제공됩니다.

2.2. 개발 환경 설정

  1. Red Hat CodeReady Studio 다운로드 및 설치.

    자세한 내용은 Red Hat CodeReady Studio 설치 가이드에서 Installer를 사용하여 CodeReady Studio 독립 실행형 설치 가이드를 참조하십시오.

  2. Red Hat CodeReady Studio에서 JBoss EAP 서버를 설정합니다.

    자세한 내용은 CodeReady Studio Tools 가이드 의 IDE 내에서 JBoss EAP 다운로드, 설치 및 설정을 참조하십시오.

2.3. 빠른 시작 예 사용

JBoss EAP와 함께 제공되는 빠른 시작 예는 Maven 프로젝트입니다.

2.3.1. Maven 정보

Apache Maven은 Java 애플리케이션 개발에 사용되는 분산 빌드 자동화 도구로 소프트웨어 프로젝트를 생성, 관리 및 빌드합니다. Maven은 POM(프로젝트 오브젝트 모델) 파일이라는 표준 구성 파일을 사용하여 프로젝트를 정의하고 빌드 프로세스를 관리합니다. Poms는 XML 파일을 사용하여 결과 프로젝트 패키징 및 출력의 모듈 및 구성 요소 종속성, 빌드 순서 및 타겟을 설명합니다. 이렇게 하면 프로젝트가 올바르고 일관된 방식으로 구축됩니다.

Maven은 리포지토리를 사용하여 이를 수행합니다. Maven 리포지토리는 Java 라이브러리, 플러그인 및 기타 빌드 아티팩트를 저장합니다. 기본 공용 리포지토리는 Maven 2 중앙 리포지토리이지만, 개발 팀 간에 공통 아티팩트를 공유하는 목표를 사용하여 회사 내에서 개인 및 내부 리포지토리가 될 수 있습니다. 타사에서 리포지토리를 사용할 수도 있습니다. 자세한 내용은 Apache Maven 프로젝트 및 Introduction to Repositories 가이드를 참조하십시오.

JBoss EAP에는 Jakarta EE 개발자가 JBoss EAP에서 애플리케이션을 빌드하는 데 일반적으로 사용하는 많은 요구 사항이 포함된 Maven 리포지토리가 포함되어 있습니다.

JBoss EAP를 사용하여 Maven을 사용하는 방법에 대한 자세한 내용은 JBoss EAP 개발 가이드에서 Maven 사용을 참조하십시오.

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

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

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

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

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

2.3.3.1. 빠른 시작 다운로드

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

  1. Red Hat 고객 포털에서 JBoss EAP 다운로드 페이지에 로그인합니다.
  2. Version(버전) 드롭다운 메뉴에서 7.4 를 선택합니다.
  3. 목록에서 Red Hat JBoss Enterprise Application Platform 7.4.0 빠른 시작 항목을 찾은 후 다운로드를 클릭하여 빠른 시작이 포함된 ZIP 파일을 다운로드합니다.
  4. ZIP 파일을 원하는 디렉토리에 저장합니다.
  5. ZIP 파일을 추출합니다.

2.3.3.2. Red Hat CodeReady Studio에서 빠른 시작 실행

빠른 시작을 다운로드하면 Red Hat CodeReady Studio로 가져와 JBoss EAP에 배포할 수 있습니다.

Red Hat CodeReady Studio로 빠른 시작 가져오기

각 빠른 시작에는 해당 프로젝트 및 구성 정보가 포함된 POM 파일이 포함되어 있습니다. 이 POM 파일을 사용하여 빠른 시작을 Red Hat CodeReady Studio로 쉽게 가져옵니다.

중요

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

  1. Start Red Hat CodeReady Studio.
  2. 파일가져오기를 선택합니다.
  3. Maven → Existing Maven Projects 를 선택하고 Next (다음)를 클릭합니다.

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

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

    그림 2.2. Maven 프로젝트 선택

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

helloworld 빠른 시작 실행

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

  1. 서버를 아직 정의하지 않은 경우 JBoss EAP 서버를 Red Hat CodeReady Studio에 추가합니다. CodeReady Studio Tools 가이드 의 IDE 내에서 JBoss EAP 다운로드, 설치 및 설정을 참조하십시오.
  2. Project Explorer 탭에서 helloworld 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 Run As → Run on Server를 선택합니다.

    그림 2.3. 실행 - 서버에서 실행

    서버* 화면 캡처에서 *Run As* → *Run.
  3. 서버 목록에서 JBoss EAP 7.4 서버를 선택하고 Next (다음)를 클릭합니다.

    그림 2.4. 서버에서 실행

    Server*에서 *Run(서버에서 실행) 창입니다.
  4. helloworld 빠른 시작은 이미 서버에 구성되도록 나열되어 있습니다. Finish( 완료 )를 클릭하여 빠른 시작을 배포합니다.

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

    *Add and Remove Resources* 창입니다.
  5. 결과를 확인합니다.

    • Server (서버) 탭에서 JBoss EAP 7.4 서버 상태가 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! 를 표시합니다.

helloworld 빠른 시작에 대한 자세한 내용은 helloworld 빠른 시작 살펴보기를 참조하십시오.

bean-validation Quickstart 실행

bean-validation 빠른 시작과 같은 일부 빠른 시작은 사용자 인터페이스 계층을 제공하지 않고 기능을 시연하는 Arquillian 테스트를 제공합니다.

  1. 빈 유효성 검사 빠른 시작을 Red Hat CodeReady Studio로 가져옵니다.
  2. Servers(서버 ) 탭에서 서버를 마우스 오른쪽 버튼으로 클릭하고 Start (시작)를 선택하여 JBoss EAP 서버를 시작합니다. Servers 탭이 없거나 서버를 정의하지 않은 경우 JBoss EAP 서버를 Red Hat CodeReady Studio에 추가합니다. CodeReady Studio Tools 가이드 의 IDE 내에서 JBoss EAP 다운로드, 설치 및 설정을 참조하십시오.
  3. Project Explorer 탭에서 bean-validation 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 Run AsMaven Build 를 선택합니다.
  4. 목표 입력 필드에 다음을 입력한 다음 Run(실행 )을 클릭합니다.

    clean verify -Parq-remote

    그림 2.6. 설정 편집

    *Edit Configuration* 창입니다.
  5. 결과를 확인합니다.

    Console(콘솔 ) 탭에는 bean-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.3.3.3. 명령줄에서 빠른 시작 실행

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

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

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

명령줄에서 helloworld 빠른 시작 실행

  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.4. 빠른 시작 예 확인

2.4.1. helloworld 빠른 시작 살펴보기

helloworld 빠른 시작에서는 JBoss EAP에 간단한 서블릿을 배포하는 방법을 보여줍니다. 비즈니스 로직은 서비스에 캡슐화되며 Jakarta Contexts and Dependency Injection bean으로 제공되며 서블릿에 주입됩니다. 이 빠른 시작 지점은 서버를 올바르게 구성 및 시작했는지 확인하는 시작 지점입니다.

명령줄을 사용하여 이 빠른 시작을 빌드하고 배포하기 위한 자세한 지침은 README.html 파일에 있습니다 . README.html 파일은 helloworld 빠른 시작 디렉터리의 root에 있습니다. 이 주제에서는 Red Hat CodeReady Studio를 사용하여 빠른 시작을 실행하고 Maven이 구성된 Red Hat CodeReady Studio, 가져오기 및 성공적으로 helloworld 빠른 시작을 실행했다고 가정합니다.

사전 요구 사항
디렉터리 구조 검사

helloworld 빠른 시작 코드는 QUICKSTART_HOME/helloworld/ 디렉터리에 있습니다. helloworld 빠른 시작은 서블릿 및 자카르타 컨텍스트 및 종속성 주입 빈으로 구성됩니다. 또한 버전 번호 1.1과 bean- discovery -mode가 있는 애플리케이션의 WEB-INF/ 디렉토리에 bean.xml 파일이 포함되어 있습니다 . 이 마커 파일은 WAR를 빈 아카이브로 식별하고 JBoss EAP에 이 애플리케이션에서 빈을 찾고 자카르타 컨텍스트 및 종속성 주입을 활성화하도록 지시합니다.

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

코드 검사

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

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

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

    예제: HelloWorldServlet Class Code

    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.1. HelloWorldServlet Details

    참고

    43

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

    46-48

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

    50-51

    이러한 행은 실제 메시지를 생성하는 HelloService Jakarta Contexts 및 Dependency Injection Bean을 주입합니다. HelloService의 API를 변경하지 않는 한, 이 방법을 사용하면 보기 계층을 변경하지 않고 나중에 HelloService 구현을 변경할 수 있습니다.

    58

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

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

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

    예제: HelloService 클래스 코드

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

2.4.2. 숫자 측정 빠른 시작 살펴보기

숫자 측정 빠른 시작 에서는 JBoss EAP에 단순한 비영구적 애플리케이션을 생성하고 배포하는 방법을 보여줍니다. 정보는 Jakarta Server Faces 보기를 사용하여 표시되며 비즈니스 로직은 두 개의 Jakarta Contexts 및 Dependency Injection Bean으로 캡슐화됩니다. 숫자 측정 빠른 시작 에는 1에서 100 사이의 숫자를 추측하려는 10번 시도가 있습니다. 시도한 후에 추측이 너무 높거나 너무 낮은지 알 수 있습니다.

숫자 측정 빠른 시작 코드는 QUICKSTART_HOME/numberguess/ 디렉터리에서 확인할 수 있습니다. 여기서 QUICKSTART_HOME 은 다운로드한 JBoss EAP 빠른 시작의 압축을 풉니다. 숫자 측정 빠른 시작은 다수의 빈, 구성 파일 및 Facelets Jakarta Server Faces 뷰로 구성되며 WAR 모듈로 패키징됩니다.

명령줄을 사용하여 이 빠른 시작을 빌드하고 배포하는 자세한 지침은 README.html 파일에서 숫자 측정 빠른 시작 디렉터리의 루트에 있습니다. 다음 예제에서는 Red Hat CodeReady Studio를 사용하여 빠른 시작을 실행합니다.

사전 요구 사항
구성 파일 검사

이 예제의 모든 구성 파일은 빠른 시작의 QUICKSTART_HOME/numberguess/src/main/webapp/WEB-INF/ 디렉터리에 있습니다.

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

    이 빠른 시작은 Jakarta Server Faces 2.2 버전의 faces-config.xml filename을 사용합니다. 표준화된 버전의 Facelets은 Jakarta Server Faces 2.2의 기본 보기 처리기이므로 구성이 필요하지 않습니다. 이 파일은 루트 요소로만 구성되며 애플리케이션에서 JSF를 활성화해야 함을 나타내는 마커 파일입니다.

    <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 파일을 검사합니다.

    bean.xml 파일에는 버전 번호 1.1과 allbean-discovery-mode 가 포함되어 있습니다. 이 파일은 WAR를 빈 아카이브로 식별하고 JBoss EAP에 이 애플리케이션에서 빈을 찾고 Jakarta Contexts 및 Dependency Injection을 활성화하도록 지시하는 마커 파일입니다.

    <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.4.2.1. Jakarta Server Faces Code 검사

Jakarta Server Faces는 소스 파일에 .xhtml 파일 확장자를 사용하지만 .jsf 확장자와 함께 렌더링된 뷰를 제공합니다. home.xhtml 파일은 src/main/webapp/ 디렉터리에 있습니다.

예제: Jakarta Server Faces 소스 코드

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 Jakarta Contexts and Dependency Injection 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>

다음 줄 번호는 Red Hat CodeReady Studio에서 파일을 볼 때 표시되는 번호에 해당합니다.

표 2.2. Jakarta Server Faces 세부 정보

참고

36-40

다음은 사용자에게 전송할 수 있는 메시지입니다. "더 높음!" 및 "Lower!"

45-48

사용자가 추측할 수 있듯이 추측할 수 있는 숫자의 범위가 작아집니다. 이 문장이 변경되어 유효한 추측의 개수를 알 수 있습니다.

55-58

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

58

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

59-61

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

2.4.2.2. 클래스 파일 검사

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

  1. Random.java 한정자 코드 검토

    한정자를 사용하여 두 빈 간의 모호성을 제거하는 데 사용되며, 둘 다 유형에 따라 주입할 수 있습니다. 한정자에 대한 자세한 내용은 JBoss EAP 개발 가이드에서 한정자를 사용하여 모호한 주입 해결을 참조하십시오. @Random 한정자는 임의 숫자를 주입하는 데 사용됩니다.

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

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

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

    generate 클래스 는 생산자 메서드를 통해 임의 숫자를 생성하고 동일한 방법을 통해 가능한 최대 숫자를 노출합니다. 이 클래스는 애플리케이션 범위이므로 매번 다른 무작위로 설정되지 않습니다.

    @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 코드 검토

    세션 범위 게임 클래스는 애플리케이션의 기본 진입점입니다. 게임 설정 또는 재설정, 사용자의 추측을 캡처 및 검증, FacesMessage 를 사용하여 사용자에게 피드백을 제공하는 역할을 담당합니다. 사후 구축 라이프사이클 방법을 사용하여 @Random Instance<Integer> 빈에서 임의 숫자를 검색하여 문제를 초기화합니다.

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

    @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 Jakarta Server Faces 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.xml, host.xml 구성 파일에 정의된 대체 구성으로 서버를 시작할 수 있습니다. 대체 구성에는 대체 소켓 바인딩 집합 또는 보조 구성을 사용하여 서버 시작이 포함될 수 있습니다.

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

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

인수 또는 스위치서버 유형설명

--admin-only

독립 실행형

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

--admin-only

도메인

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

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

독립 실행형, 도메인

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

-b<interface>=<value>

독립 실행형, 도메인

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

--backup

도메인

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

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

독립 실행형

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

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

도메인

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

--cached-dc

도메인

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

--debug [<port>]

독립 실행형

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

-D<name>[=<value>]

독립 실행형, 도메인

시스템 속성 설정.

--domain-config=<config>

도메인

사용할 서버 구성 파일의 이름입니다. 기본값은 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>

도메인

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

--interprocess-hc-address=<address>

도메인

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

--interprocess-hc-port=<port>

도메인

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

--master-address=<address>

도메인

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

--master-port=<port>

도메인

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

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

독립 실행형

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

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

도메인

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

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

도메인

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

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

독립 실행형, 도메인

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

--pc-address=<address>

도메인

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

--pc-port=<port>

도메인

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

-S<name>[=<value>]

독립 실행형

보안 속성을 설정합니다.

-secmgr

독립 실행형, 도메인

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

--server-config=<config>

독립 실행형

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

--start-mode=<mode>

독립 실행형

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

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

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

독립 실행형, 도메인

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

-v, -V, --version

독립 실행형, 도메인

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

주의

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

A.2. add-user 인수

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

표 A.2. add-user 인수에 대한 설명

명령줄 인수설명

-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)
  • 대시(-), 마침표(.), 쉼표(,), 기호(@)
  • 백슬래시 (\)
  • 같음 (=)

-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. 인터페이스 특성에 대한 설명:

interface 속성설명

Any

인터페이스가 선택한 중첩 조건 집합 중 하나 이상을 충족해야 하지만 반드시 전부여야 함을 지정합니다.Specifies that an interface must meet at least one, but not necessarily all, of the selected nested set of criteria.

any-address

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

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

inet-address

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

link-local-address

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

루프백

인터페이스가 루프백 인터페이스로 식별되는지 여부를 나타내는 기준을 지정하는 빈 속성입니다.

loopback-address

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

멀티 캐스트

인터페이스가 멀티 캐스트를 지원하는지 여부에 대한 기준을 지정하는 빈 속성입니다.

name

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

nic

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

NIC 일치

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

아니요

인터페이스에서 충족해야 하는 선택 기준을 나타내는 속성입니다.

점대점

인터페이스가 지점 간 인터페이스로 식별되는지 여부를 나타내는 기준을 지정하는 빈 속성입니다.

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. 인바운드 소켓 바인딩, 소켓 바인딩 , 속성에 대한 설명:

속성설명

client-mappings

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

fixed-port

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

인터페이스

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

multicast-address

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

멀티 캐스트 포트

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

name

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

port

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

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

속성설명

fixed-source-port

소켓 그룹의 다른 아웃바운드 소켓에 숫자 오프셋을 적용한 경우에도 포트 값을 고정 상태로 유지할지 여부를 결정합니다.

호스트

아웃바운드 소켓이 연결되는 원격 대상의 호스트 이름 또는 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. 기본 standard-sockets 소켓 바인딩에 대한 설명:

소켓 바인딩포트설명

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 암호화 연결.

jgroups-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 서비스.

jgroups-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. 기본 로드 밸런서-sockets 소켓 바인딩에 대한 설명:

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

http

8080

 

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

https

8443

 

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

management-http

9990

 

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

management-https

9993

 

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

mcmp-management

8090

 

라이프사이클 이벤트를 전송하기 위한 MMCMP(Modro-Cluster Management Protocol) 연결 포트입니다.

modcluster

 

23364

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





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.