スタートガイド

Red Hat JBoss Enterprise Application Platform 7 向け

Red Hat Customer Content Services

Copyright © 2016 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, JBoss, MetaMatrix, 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 Software Collections 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.

概要

本ガイドは、Red Hat JBoss Enterprise Application Platform 7 を初めて使用するユーザーに基本的な情報を提供するためのガイドです。

第1章 はじめに

Red Hat JBoss Enterprise Application Platform 7

Red Hat JBoss Enterprise Application Platform 7 (JBoss EAP) は、オープンな標準に基いて構築され、Java Enterprise Edition 7 の仕様に準拠するミドルウェアプラットフォームです。メッセージング、高可用性クラスタリングなどの技術が WildFly Application Server 10 と統合されます。

JBoss EAP には、必要な場合にだけサービスを有効にできるモジュール構造が含まれ、サービスの起動時間が短縮されます。

管理コンソールと管理コマンドラインインターフェース (CLI) により、XML 設定ファイルの編集が不要になり、タスクをスクリプト化および自動化する機能が追加されました。

JBoss EAP は、JBoss EAP インスタンスに対してスタンドアロンサーバーと管理対象ドメインの 2 つの操作モードを提供します。スタンドアロンサーバー操作モードでは、実行している JBoss EAP を 1 つのサーバーインスタンスとして表します。管理対象ドメイン操作モードでは、1 つの制御ポイントから複数の JBoss EAP インスタンスを管理できます。

また、JBoss EAP には、セキュアでスケーラブルな Java EE アプリケーションの迅速な開発を可能にする API と開発フレームワークが含まれます。

スタートガイド

本ガイドの目的は、ユーザーが JBoss EAP を短時間で使用できるようにすることです。JBoss EAP の基本のインストール、管理、設定などの管理タスクについて取り上げます。また、本ガイドは開発者が初めて JBoss EAP のクイックスタートを使用して Java EE 7 アプリケーションを書く場合にも役立ちます。

詳細は、 JBoss EAP ドキュメントを参照してください。

第2章 JBoss EAP の管理

JBoss EAP のダウンロードおよびインストール

本ガイドでは、プラットフォームに依存する ZIP インストールを使用して JBoss EAP をダウンロードおよびインストールする基本的な手順を説明します。

グラフィカルインストーラーや RPM パッケージを使用して JBoss EAP をインストールする手順など、その他の詳細はインストールガイドを参照してください。

インストールの要件

JBoss EAP をインストールする前に、以下の要件を満たしていることを確認してください。

一般的な要件

システムは JBoss EAP 7 supported configurations に従ってサポートされます。

Red Hat がリリースした更新とエラータを適用し、システムが最新の状態であるようにしてください。

ZIP インストールの要件

JBoss EAP を実行するユーザーは、インストールディレクトリーへの読み書きアクセスが必要になります。

適切な Java Development Kit がインストールされている必要があります。

Hewlett-Packard HP-UX では、unzip ユーティリティーがインストールされている必要があります。

Windows Server では、JAVA_HOME と PATH 環境変数が設定されている必要があります。

JBoss EAP のダウンロード

JBoss EAP の ZIP インストールファイルは、Red Hat カスタマーポータルからダウンロードできます。

Red Hat カスタマーポータルにログインします。

ダウンロードをクリックします。

製品のダウンロードリストで Red Hat JBoss Enterprise Application Platform をクリックします。

Version ドロップダウンメニューで希望のバージョンを選択します。

表で Red Hat JBoss Enterprise Application Platform 7.x.x を見つけ、Download をクリックします。

ZIP ファイルを希望の場所に保存します。

JBoss EAP のインストール

JBoss EAP の ZIP インストールファイルをダウンロードしたら、パッケージの内容を展開するとインストールできます。

必要な場合は、JBoss EAP をインストールするサーバーおよび場所に ZIP ファイルを移動します。

JBoss EAP を実行するユーザーは、このディレクトリーへの読み書きアクセスが必要になります。

ZIP アーカイブを展開します。

$ unzip jboss-eap-7.x.x.zip

注記

Windows Server の場合は ZIP ファイルを右クリックし、すべて展開 を選択します。

ZIP アーカイブを展開して作成したディレクトリーは、サーバーの最上位ディレクトリーとなります。このディレクトリーを EAP_HOME と呼びます。

JBoss EAP の開始および停止

JBoss EAP の開始

JBoss EAP は、スタンドアロンサーバーと管理対象ドメインの 2 つの操作モードの 1 つで実行され、Red Hat Enterprise Linux、Windows Server、Oracle Solaris および Hewlett-Packard HP-UX でサポートされます。

JBoss EAP を起動するコマンドは、基盤のプラットフォームと選択する操作モードによって異なります。

JBoss EAP をスタンドアロンサーバーとして起動

$ EAP_HOME/bin/standalone.sh

注記

Windows Server の場合は EAP_HOME\bin\standalone.bat スクリプトを使用します。

この起動スクリプトは、EAP_HOME/bin/standalone.conf ファイル (Windows Server の場合は standalone.conf.bat) を使用して、JVM オプションなどのデフォルト設定の一部を設定します。このファイルの設定はカスタマイズすることができます。

JBoss EAP はデフォルトで standalone.xml 設定ファイルを使用しますが、別の設定ファイルを使用して起動することもできます。利用できるスタンドアロン設定ファイルとそれらの使用方法については、スタンドアロンサーバー設定ファイル の項を参照してください。

使用できる起動スクリプトの引数の完全リストとそれら引数の目的については、--help 引数を使用するか、サーバーランタイム引数を参照してください。

管理対象ドメインでの JBoss EAP の起動

ドメイン内のサーバーグループのサーバーを起動する前にドメインコントローラーを起動する必要があります。このスクリプトを使用して最初にドメインコントローラーを起動した後、関連するホストコントローラーに対して使用します。

$ EAP_HOME/bin/domain.sh

注記

Windows Server の場合は、EAP_HOME\bin\domain.bat スクリプトを使用します。

この起動スクリプトは、 EAP_HOME/bin/domain.conf ファイル (Windows Server の場合は domain.conf.bat) を使用して、JVM オプションなどのデフォルト設定の一部を設定します。このファイルの設定はカスタマイズすることができます。

JBoss EAP はデフォルトで host.xml ホスト設定ファイルを使用しますが、別の設定ファイルを使用して起動することもできます。利用できる管理対象ドメイン設定ファイルとそれらの使用方法については、管理対象ドメイン設定ファイル の項を参照してください。

管理対象ドメインを設定するとき、追加の引数を起動スクリプトに渡す必要があります。使用できる起動スクリプトの引数の完全リストとそれら引数の目的については、--help 引数を使用するか、起動スクリプト引数のリファレンス の項を参照してください。

JBoss EAP の停止

JBoss EAP の停止方法は、開始した方法によって異なります。

JBoss EAP の対話的なインスタンスの停止

JBoss EAP を起動したターミナルで Ctrl+C を押します。

JBoss EAP のバックグラウンドインスタンスの停止

管理 CLI を使用して、稼働中のインスタンスへ接続し、サーバーをシャットダウンします。

管理 CLI を起動します。

$ EAP_HOME/bin/jboss-cli.sh --connect

shutdown コマンドを実行します。

shutdown

注記

管理対象ドメインで実行している場合、shutdown コマンドに --host 引数を使用してシャットダウンする、ホスト名を指定する必要があります。

JBoss EAP の管理

JBoss EAP は簡単な設定を使用し、スタンドアロンサーバーまたは管理対象ドメインごとに 1 つの設定ファイルを使用します。スタンドアロンサーバーのデフォルト設定は EAP_HOME/standalone/configuration/standalone.xml ファイルに保存され、管理対象ドメインのデフォルト設定は EAP_HOME/domain/configuration/domain.xml ファイルに保存されます。また、ホストコントローラーのデフォルト設定は EAP_HOME/domain/configuration/host.xml ファイルに保存されます。

JBoss EAP はコマンドラインの管理 CLI または Web ベースの管理コンソールを使用して設定できます。これらの管理インターフェースを使用して加えられた変更は自動的に永続化され、XML 設定ファイルは管理 API によって上書きされます。XML 設定ファイルの手作業による編集は推奨されません。

管理ユーザー

管理コンソールを使用するには、最低でも管理ユーザーを 1 名作成する必要があります。JBoss EAP との HTTP ベースの通信は、トラフィックの送信元がローカルホストであってもリモートアクセスと見なされます。ユーザーを追加する前に管理コンソールへアクセスしようとすると、エラーメッセージが出力されます。

JBoss EAP のインストール方法によっては、管理インターフェースにアクセスするユーザーアカウントが最初から存在しないことがあります。グラフィカルインストーラーを使用して JBoss EAP を使用した場合、インストールプロセス中に、必要な特権を持つユーザーアカウントが 1 つ作成されます。その他の場合は、管理インターフェースにアクセスするために最低でも 1 名の管理ユーザーを作成する必要があります。

本ガイドでは、add-user スクリプトを使用する JBoss EAP の簡単なユーザー管理について説明します。このスクリプトは、既定の認証のプロパティーファイルに新規ユーザーを追加するユーティリティーです。LDAP やロールベースアクセス制御 (RBAC) などの高度な認証や承認のオプションについては、Security Architecture Guide を参照してください。

管理ユーザーの追加

add-user ユーティリティースクリプトを実行し、プロンプトに従います。

$ EAP_HOME/bin/add-user.sh

注記

Windows Server の場合は EAP_HOME\bin\add-user.bat スクリプトを使用します。

ENTER を押して、デフォルトのオプション a を選択し、管理ユーザーを追加します。

このユーザーは ManagementRealm に追加され、管理コンソールまたはコマンドラインベース管理 CLI を使用して監理操作を実行することを許可されます。別のオプション (b) を選択すると、アプリケーションに使用される ApplicationRealm にユーザーが追加され、特定のパーミッションは提供されません。

ユーザー名とパスワードを入力します。入力後、パスワードを確認するよう指示されます。

デフォルトでは、弱いパスワードは許可されますが、警告が表示されます。このデフォルト動作の変更に関する詳細は、JBoss EAP Configuration Guide の Setting Add-User Utility Password Restrictions を参照してください。

ユーザーが属するグループのコンマ区切りリストを入力します。ユーザーがグループに属さないようにする場合は ENTER を押して空白のままにします。

情報を確認し、正しければ yes を入力します。

このユーザーがリモート JBoss EAP サーバーインスタンスを表すかどうかを決定します。基本的な管理ユーザーの場合は no を入力します。

ManagementRealm への追加が必要になることがあるユーザーのタイプの 1 つが、JBoss EAP の別のインスタンスを表すユーザーで、メンバーとしてクラスターに参加することを承認できる必要があります。この場合は、プロンプトで yes を選択すると、異なる設定ファイルに追加する必要がある、ユーザーのパスワードを表すハッシュ化された秘密の値が提供されます。

パラメーターを add-user スクリプトに渡すと、非対話的にユーザーを作成できます。ログや履歴ファイルにパスワードが表示されるため、この方法は共有システムでは推奨されません。詳細は Add-User ユーティリティーを非対話的に実行を参照してください。

Add-User ユーティリティーを非対話的に実行

コマンドラインで引数を渡すと add-user スクリプトを非対話的に実行することができます。最低でも、ユーザー名とパスワードを提供する必要があります。

警告

ログや履歴ファイルにパスワードが表示されるため、この方法は共有システムでは推奨されません。

複数のグループに属するユーザーの作成

以下のコマンドは、guest および mgmtgroup グループの管理ユーザー (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 引数を使用するか、Add-User ユーティリティー引数の項を参照してください。

管理インターフェース

管理 CLI

管理コマンドラインインターフェース (CLI) は、JBoss EAP のコマンドライン管理ツールです。

管理 CLI を使用して、サーバーの起動および停止、アプリケーションのデプロイおよびアンデプロイ、システムの設定、他の管理タスクの実行を行います。操作はバッチモードで実行でき、複数のタスクをグループとして実行できます。

ls、cd、pwd など、多くの共通するターミナルコマンドを使用できます。管理 CLI はタブ補完をサポートします。

コマンドと操作、構文、およびバッチモードでの実行を含む、管理 CLI の使用に関する詳細は、JBoss EAP Management CLI Guide を参照してください。

管理 CLI の起動

$ EAP_HOME/bin/jboss-cli.sh

注記

Windows Server の場合は EAP_HOME\bin\jboss-cli.bat スクリプトを使用します。

稼働中のサーバーへの接続

connect

上記の代わりに、管理 CLI を起動し、EAP_HOME/bin/jboss-cli.sh --connect コマンドを使用すると 1 度に接続できます。

ヘルプの表示

以下のコマンドを実行してヘルプを表示します。

help

以下のコマンドを実行して、特定コマンドのヘルプを表示します。

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

管理コンソール

管理コンソールは JBoss EAP の Web ベースの管理ツールです。

管理コンソールを使用して、サーバーの開始および停止、アプリケーションのデプロイおよびアンデプロイ、システム設定の調整、サーバー設定の変更の永続化を行います。管理コンソールは管理タスクも実行でき、現在のユーザーが変更を行った後にサーバーインスタンスの再起動またはリロードが必要な場合はライブ通知も行います。

管理対象ドメインでは、同じドメイン内のサーバーインスタンスやサーバーグループをドメインコントローラーの管理コンソールから一元的に管理できます。

デフォルトの管理ポートを使用してローカルホストで稼働している JBoss EAP インスタンスの場合、Web ブラウザーを使用して http://localhost:9990/console/App.html で管理コンソールにアクセスできます。管理コンソールにアクセスできるパーミッションを持つユーザーで認証する必要があります。

管理コンソールでは、JBoss EAP スタンドアロンサーバーまたは管理対象ドメインを操作および管理するために以下のタブが提供されます。

Home (ホーム)

一般的な設定および管理タスクを行う方法を学ぶことができます。ツアーに参加して JBoss EAP 管理コンソールについてよく理解してください。

Deployments (デプロイメント)

デプロイメントを追加、削除、および有効化します。管理対象ドメインでは、デプロイメントをサーバーグループに割り当てます。

Configuration (設定)

Web サービス、メッセージング、高可用性などの機能を提供する利用可能なサブシステムを設定します。管理対象ドメインでは、異なるサブシステム設定が含まれるプロファイルを管理します。

Runtime (ランタイム)

サーバーの状態、JVM 使用率、サーバーログなどのランタイム情報を表示します。管理対象ドメインではホスト、サーバーグループ、およびサーバーを管理します。

Access Control (アクセス制御)

ロールベースアクセス制御を使用するときにユーザーとグループにロールを割り当てます。

Patching (パッチ)

JBoss EAP インスタンスにパッチを適用します。

注記

更新された管理コンソールについて説明するツアーに参加するには、管理コンソールのホームページにある Take a Tour リンクをクリックします。

フォームフィールドの詳細を表示するには、Need Help? リンクをクリックします。

実行した設定アクションのメッセージ履歴を表示するには、管理コンソールの右上にある Messages リンクをクリックします。

設定ファイル

スタンドアロンサーバー設定ファイル

スタンドアロン設定ファイルは EAP_HOME/standalone/configuration ディレクトリーにあります。事前定義された 4 つのプロファイル (default、ha、full、および full-ha) ごとに個別のファイルがあります。

表2.1 スタンドアロン設定ファイル

設定ファイル
目的

standalone.xml

このスタンドアロン設定ファイルは、スタンドアロンサーバーを起動したときに使用されるデフォルト設定です。このファイルには、サブシステム、ネットワーキング、デプロイメント、ソケットバインディング、およびその他の設定詳細など、サーバーに関するすべての情報が含まれます。メッセージングや高可用性に必要なサブシステムは提供しません。

standalone-ha.xml

このスタンドアロン設定ファイルには、デフォルトのサブシステムすべてが含まれ、高可用性の mod_cluster および JGroups サブシステムを追加します。メッセージングに必要なサブシステムは提供しません。

standalone-full.xml

このスタンドアロン設定ファイルには、デフォルトのサブシステムすべてが含まれ、Messaging および IIOP サブシステムを追加します。高可用性に必要なサブシステムは提供しません。

standalone-full-ha.xml

このスタンドアロン設定ファイルには、メッセージングおよび高可用性を含むすべてのサブシステムのサポートが含まれます。

デフォルトでは、スタンドアロンサーバーとして JBoss EAP を起動すると standalone.xml ファイルが使用されます。他の設定で JBoss EAP を起動するには --server-config 引数を使用します。以下に例を示します。

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

管理対象ドメイン設定ファイル

管理対象ドメイン設定ファイルは EAP_HOME/domain/configuration ディレクトリーにあります。

表2.2 管理対象ドメイン設定ファイル

設定ファイル
目的

domain.xml

これは管理対象ドメインのメインの設定ファイルです。ドメインマスターのみがこのファイルを読み取ります。このファイルには、すべてのプロファイルの設定が含まれます (例: default、ha、full、full-ha)。

host.xml

このファイルには、管理対象ドメインの物理ホスト固有の設定情報が含まれています (ネットワークインターフェース、ソケットバインディング、ホスト名、その他のホスト固有の詳細など)。host.xml ファイルには、host-master.xml および host-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

設定データのバックアップ

JBoss EAP のサーバー設定を後で復元するため、以下の場所にあるものはバックアップしておく必要があります。

EAP_HOME/standalone/configuration/

ディレクトリー全体をバックアップして、スタンドアロンサーバーのユーザーデータ、サーバー設定、およびロギング設定を保存します。

EAP_HOME/domain/configuration/

ディレクトリー全体をバックアップして、管理対象ドメインのユーザーおよびプロファイルデータ、ドメインおよびホスト設定、およびロギング設定を保存します。

EAP_HOME/modules/system/layers/base/

カスタムモジュールをバックアップします。

EAP_HOME/welcome-content/

カスタムのウェルカムコンテンツをバックアップします。

EAP_HOME/bin/

カスタムスクリプトまたは起動設定ファイルをバックアップします。

設定ファイルのスナップショット

サーバーの保守や管理をしやすくするため、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)

スナップショットを用いたサーバーの起動

スナップショットまたは自動保存された設定を使用してサーバーを起動できます。

EAP_HOME/standalone/configuration/standalone_xml_history ディレクトリーへ移動し、ロードするスナップショットまたは保存された設定ファイルを確認します。

サーバーを起動し、選択した設定ファイルを示します。設定ディレクトリー (例: EAP_HOME/standalone/configuration) からの相対パスを渡します。

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

注記

管理対象ドメインで実行している場合は、代わりに --host-config 引数を使用し、設定ファイルを指定します。

プロパティーの置き換え

JBoss EAP では、式を使用して設定のリテラル値の代わりに置換可能なプロパティーを定義できます。式の形式は ${PARAMETER:DEFAULT_VALUE} になります。指定のパラメーターが設定されると、パラメーターの値が使用されます。設定されない場合は、デフォルト値が使用されます。

式の解決でサポートされるリソースはシステムプロパティー、環境変数、および vault になります。デプロイメントの場合のみ、デプロイメントアーカイブの META-INF/jboss.properties ファイルにリストされたプロパティーをソースとすることができます。サブデプロイメントをサポートするデプロイメントタイプでは、プロパティーファイルが外部のデプロイメント (EAR など) にある場合は解決がすべてのサブデプロイメントに対してスコープ指定されます。プロパティーファイルがサブデプロイメントにある場合は、解決はそのサブデプロイメントのみに対してスコープ指定されます。

以下の例では、jboss.bind.address パラメーターが設定されていなければ、standalone.xml 設定ファイルによって public インターフェースの inet-address が 127.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

ネストされた式

式はネストすることができるため、固定値の代わりにさらに高度な式を使用できます。ネストされた式の書式は、通常の式の場合と同様ですが、ある式が別の式に組み込まれます。例を以下に示します。

${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} を評価し、次にこれを外側の大きい式に入力して、結果となる式を評価します。この設定の利点は、データソースの名前が固定された設定から抽象化されることです。

記述子ベースのプロパティー置換

アプリケーションの設定 (データソース接続パラメーターなど) は、通常は開発デプロイメント、テストデプロイメント、および本番環境によって異なります。Java EE 仕様にはこれらの設定を外部化するメソッドが含まれていないため、このような違いはビルドシステムスクリプトで対応することがあります。JBoss EAP では、記述子ベースのプロパティー置換を使用して設定を外部的に管理できます。

記述子ベースのプロパティー置換は、記述子を基にプロパティーを置き換えるため、アプリケーションやビルドチェーンから環境に関する仮定を除外できます。環境固有の設定は、アノテーションやビルドシステムスクリプトでなく、デプロイメント記述子に指定できます。設定はファイルに指定したり、パラメーターとしてコマンドラインで提供したりできます。

EE サブシステムには、プロパティー置換が適用されたかどうかを制御する複数のフラグがあります。

JBoss 固有の記述子置換は jboss-descriptor-property-replacement フラグによって制御され、デフォルトで有効になっています。有効になっていると、以下のデプロイメント記述子でプロパティーを置換できます。

jboss-ejb3.xml

jboss-app.xml

jboss-web.xml

*-jms.xml

*-ds.xml

以下の管理 CLI コマンドを使用すると、JBoss 固有の記述子でプロパティー置換を有効または無効にできます。

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

Java EE の記述子置換は spec-descriptor-property-replacement フラグによって制御され、デフォルトで無効になっています。有効にすると、以下のデプロイメント記述子でプロパティーを置換できます。

ejb-jar.xml

persistence.xml

application.xml

web.xml

以下の管理 CLI コマンドを使用すると、Java EE の記述子でプロパティー置換を有効または無効にできます。

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

ネットワークおよびポート設定

インターフェース

JBoss EAP は設定全体で名前付きインターフェースを参照します。これにより、使用ごとにインターフェースの完全な詳細を必要とせず、論理名を使用して個々のインターフェース宣言を参照できます。

また、複数のマシンでネットワークインターフェースの詳細が異なる場合に管理対象ドメインの設定が容易になります。各サーバーインスタンスは、論理名グループに対応できます。

standalone.xml、domain.xml、および host.xml ファイルにはインターフェース宣言が含まれます。使用されるデフォルトの設定に応じて、複数の事前設定されたインターフェース名があります。management インターフェースは、HTTP 管理エンドポイントを含む、管理レイヤーが必要なすべてのコンポーネントおよびサービスに使用できます。public インターフェースは、アプリケーション関連のネットワーク通信すべてに使用できます。unsecure インターフェースは、標準設定の IIOP ソケットに使用されます。private インターフェースは、標準設定の JGroups ソケットに使用されます。

デフォルトインターフェース設定

<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 をスタンドアロンサーバーとして起動するときに public インターフェースの inet-address を設定できます。

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

この代わりに、サーバー起動のコマンドラインで -b スイッチを使用することができます。サーバー起動オプションの詳細は、サーバーランタイム引数を参照してください。

インターフェースの設定

ネットワークインターフェースは、物理インターフェースの論理名および選択基準を指定して宣言されます。選択基準はワイルドカードアドレスを参照したり、一致が有効となるためにインターフェースまたはアドレスで必要となる 1 つ以上の特徴のセットを指定したりできます。使用できるすべてのインターフェース選択基準は インターフェース属性を参照してください。

インターフェースは管理コンソールまたは管理 CLI を使用して設定できます。以下にインターフェースの追加および更新の例をいくつか示します。最初に管理 CLI コマンドを示し、その後に対応する設定 XML を示します。

NIC 値があるインターフェースの追加

NIC 値が eth0 であるインターフェースを新たに追加します。

/interface=external:add(nic=eth0)

<interface name="external">
   <nic name="eth0"/>
</interface>

複数の条件値があるインターフェースの追加

稼働時に適切なサブネットのすべてのインターフェースまたはアドレスと一致し、マルチキャストをサポートする、ポイントツーポイントでないインターフェースを新たに追加します。

/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>

インターフェース属性の更新

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>

管理対象ドメインでインターフェースをサーバーに追加

/host=master/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>

ソケットバインディング

ソケットバインディングとソケットバインディンググループを使用することにより、ネットワークポートと、JBoss EAP の設定で必要なネットワーキングインターフェースとの関係を定義できます。ソケットバインディングはソケットの名前付き設定です。ソケットバインディンググループは、ある論理名でグループ化されたソケットバインディング宣言のコレクションです。

これにより、使用ごとにソケット設定の完全な詳細を必要とせずに、設定の他のセクションが論理名でソケットバインディングを参照できるようになります。

これらの名前付き設定の宣言は standalone.xml および domain.xml 設定ファイルにあります。スタンドアロンサーバーにはソケットバインディンググループが 1 つのみ含まれますが、管理対象ドメインには複数のグループを含むことができます。管理対象ドメインで各サーバーグループのソケットバインディンググループを作成するか、複数のサーバーグループ間でソケットバインディンググループを共有することができます。

デフォルトで JBoss EAP によって使用されるポートは、使用されるソケットバインディンググループと、個々のデプロイメントの要件に応じて異なります。

管理ポート

JBoss EAP 7 では、管理ポートが集約されました。JBoss EAP 7 は ネイティブ管理 (管理 CLI) と HTTP 管理 (Web ベース管理コンソール) の両方に 9990 ポートを使用します。JBoss EAP 6 でネイティブ管理ポートとして使用されていた 9999 ポートは使用されなくなりましたが、必要な場合は有効にできます。

管理コンソールに対して HTTPS を有効にすると、デフォルトではポート 9993 が使用されます。

デフォルトのソケットバインディング

JBoss EAP には、事前設定された 4 つのプロファイル (default、ha、full、および full-ha) のソケットバインディンググループが含まれています。

デフォルトのポートや説明などのデフォルトのソケットバインディングに関する詳細情報は、デフォルトのソケットバインディングを参照してください。

スタンドアロンサーバー

スタンドアロンサーバーとして実行されている場合、設定ファイルごとに 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>

管理対象ドメイン

管理対象ドメインで実行されている場合、すべてのソケットバインディンググループは domain.xml ファイルで定義されます。事前定義されたソケットバインディンググループは 4 つあります。

standard-sockets

ha-sockets

full-sockets

full-ha-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-tcp-fd" interface="private" port="57600"/>
        <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="jgroups-udp-fd" interface="private" port="54200"/>
        <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-groups>

注記

管理インターフェースのソケット設定は、ドメインコントローラーの host.xml ファイルに定義されます。

ソケットバインディングの設定

ソケットバインディングを設定するとき、port および interface 属性や、multicast-address および multicast-port などのマルチキャスト設定を設定できます。使用できるソケットバインディング属性すべての詳細は、ソケットバインディング属性を参照してください。

ソケットバインディングは管理コンソールまたは管理 CLI を使用して設定できます。以下の手順では、ソケットバインディンググループの追加、ソケットバインディングの追加、および管理 CLI を使用したソケットバインディングの設定を行います。

新しいソケットバインディンググループを追加します。これは、スタンドアロンサーバーとして実行している場合は追加できないことに注意してください。

/socket-binding-group=new-sockets:add(default-interface=public)

ソケットバインディングを追加します。

/socket-binding-group=new-sockets/socket-binding=new-socket-binding:add(port=1234)

ソケットバインディンググループによって設定されるデフォルト以外のインターフェースを使用するよう、ソケットバインディングを変更します。

/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>

ポートオフセット

ポートオフセットとは、該当するサーバーのソケットバインディンググループに指定されたすべてのポート値に追加される数値のオフセットのことです。これにより、同じホストの別のサーバーとの競合を防ぐため、サーバーはソケットバインディンググループに定義されたポート値とオフセットを継承できるようになります。たとえば、ソケットバインディンググループの 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

IPv6 アドレス

デフォルトでは、JBoss EAP は IPv4 アドレスを使用して実行するように設定されます。以下の手順では、IPv6 アドレスを使用して実行するよう JBoss EAP を設定する方法を示します。

IPv6 アドレスの JVM スタックの設定

IPv6 アドレスを優先するように、起動設定を更新します。

起動設定ファイルを開きます。

スタンドアロンサーバーとして実行している場合は、EAP_HOME/bin/standalone.conf ファイル (Windows Server の場合は standalone.conf.bat) を編集します。

管理対象ドメインで実行している場合は、EAP_HOME/bin/domain.conf ファイル (Windows Server の場合は domain.conf.bat) を編集します。

java.net.preferIPv4Stack プロパティーを false に設定します。

-Djava.net.preferIPv4Stack=false

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

IPv6 アドレスのインターフェース宣言の更新

設定のデフォルトのインターフェース値は、IPv6 アドレスに変更できます。たとえば、以下の管理 CLI コマンドは management インターフェースを 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>

第3章 JBoss EAP を使用したアプリケーションの開発

概要

本ガイドは、Red Hat JBoss Developer Studio と JBoss EAP 7 クイックスタートを使用してアプリケーションの開発を始めるための情報を提供します。

Red Hat JBoss Developer Studio は、JBoss アプリケーション開発のプラグインを統合する Eclipse ベースの統合開発環境 (IDE) です。JBoss Developer Studio では、JBoss 固有のウィザードやアプリケーションを JBoss EAP サーバーへデプロイする機能を使用してアプリケーション開発を補助します。異なる Java EE 7 技術を使用してアプリケーションの開発を始められるように、JBoss EAP 7 には多くのクイックスタートコードサンプルが含まれています。

本ガイドには、JBoss Developer Studio の基本インストールを行う手順が記述されています。完全なインストールの手順については Install Red Hat JBoss Developer Studio ガイドを参照してください。

開発環境の設定

JBoss Developer Studio のダウンロード

JBoss Developer Studio は Red Hat カスタマーポータルからダウンロードできます。

Red Hat カスタマーポータルにログインします。

ダウンロードをクリックします。

製品のダウンロードリストで Red Hat JBoss Developer Studio をクリックします。

Version ドロップダウンメニューで希望のバージョンを選択します。

注記

JBoss Developer Studio のバージョン 9.1 以上の使用が推奨されます。

表で Red Hat JBoss Developer Studio 9.x.x Stand-alone Installer を見つけ、Download をクリックします。

JAR ファイルを希望の場所に保存します。

JBoss Developer Studio のインストール

ターミナルを開き、ダウンロードした JAR ファイルが含まれるディレクトリーに移動します。

次のコマンドを実行して GUI インストールプログラムを起動します。

$ java -jar jboss-devstudio-BUILD_VERSION-installer-standalone.jar

注記

または、JAR ファイルをダブルクリックしてインストールプログラムを起動することもできます。

Next をクリックしてインストールプロセスを開始します。

I accept the terms of this license agreement (ライセンス契約の内容に同意します) を選択し Next をクリックします。

インストールパスを指定し、Next をクリックします。

注記

インストールパスのフォルダーが存在しない場合はメッセージが表示されます。OK をクリックしてフォルダーを作成します。

デフォルトの JVM が選択されます。他の JVM を選択するか、そのまま Next をクリックします。

プラットフォームとサーバーの選択を要求されたら、Next をクリックします。

インストールの詳細を確認し、Next をクリックします。

インストールプロセスが完了したら Next をクリックします。

JBoss Developer Studio のデスクトップショートカットを設定し、Next をクリックします。

Done をクリックします。

JBoss Developer Studio の起動

JBoss Developer Studio を起動するには、インストール中に作成されたデスクトップショートカットをダブルクリックするか、コマンドラインから起動します。コマンドラインを使用して JBoss Developer Studio を起動するには、以下の手順に従います。

ターミナルを開き、JBoss Developer Studio インストールディレクトリーに移動します。

次のコマンドを実行して JBoss Developer Studio を起動します。

$ ./jbdevstudio

注記

Windows Server の場合は jbdevstudio.bat ファイルを使用します。

JBoss EAP サーバーを JBoss Developer Studio へ追加

この手順では、JBoss EAP サーバーが JBoss Developer Studio に追加されていないことを前提とします。以下の手順に従い、Define New Server ウィザードを使用して JBoss EAP サーバーを追加します。

Servers タブを開きます。

注記

Servers タブが表示されていない場合は、Window → Show View → Servers と選択してパネルに追加します。

No servers are available. Click this link to create a new server (使用できるサーバーがありません。このリンクをクリックして新しいサーバーを作成してください) のリンクをクリックします

図3.1 新しいサーバーの追加

Red Hat JBoss Middleware を展開し、JBoss Enterprise Application Platform 7.0 を選択します。サーバー名 (例: JBoss EAP 7.0) を入力し、Next をクリックします。

図3.2 新しいサーバーの定義

サーバーアダプターを作成し、サーバーの起動と停止を管理します。デフォルトの値のままにし、Next をクリックします。

図3.3 新しいサーバーアダプターの作成

名前 (例: JBoss EAP 7.0 Runtime) を入力します。Home Directory の横にある Browse をクリックし、JBoss EAP のインストールディレクトリーに移動します。Next をクリックします。

図3.4 新しいサーバーランタイム環境の追加

注記

一部のクイックスタートでは、異なるプロファイルまたは追加の引数を使用してサーバーを起動する必要があります。たとえば、full プロファイルが必要なクイックスタートをデプロイするには、新しいサーバーを定義し、Configuration file フィールドで standalone-full.xml を指定する必要があります。新しいサーバーにはそのサーバーを意味する名前を付けてください。

新しいサーバーの既存プロジェクトを設定します。この時点ではプロジェクトは存在しないため Finish をクリックします。

図3.5 新しいサーバーのリソースの変更

JBoss EAP 7.0 サーバーが Servers タブにリストされます。

図3.6 サーバーリスト

クイックスタートサンプルの使用

Maven

Apache Maven は、ソフトウェアプロジェクトの作成、管理、および構築を行う Java アプリケーションの開発で使用される分散型ビルド自動化ツールです。Maven は Project Object Model (POM) と呼ばれる標準の設定ファイルを利用して、プロジェクトの定義や構築プロセスの管理を行います。POM はモジュールやコンポーネントの依存関係、ビルドの順番、結果となるプロジェクトパッケージングのターゲットを記述し、XML ファイルを使用して出力します。こうすることで、プロジェクトが正しく統一された状態で構築されるようにします。

注記

JBoss EAP に含まれるクイックスタートは Maven プロジェクトです。

Maven は、リポジトリーを使用してアーカイブを行います。Maven リポジトリーには Java ライブラリー、プラグイン、およびその他のビルドアーティファクトが格納されています。デフォルトのパブリックリポジトリーは Maven 2 Central Repository ですが、複数の開発チームの間で共通のアーティファクトを共有する目的で、社内のプライベートおよび内部リポジトリーとすることが可能です。また、サードパーティーのリポジトリーも利用できます。詳細は Apache Maven プロジェクトおよび Introduction to Repositories ガイドを参照してください。

JBoss EAP には、Java EE 開発者が JBoss EAP 6 でアプリケーションを構築する際に使用する要件の多くが含まれる Maven リポジトリーが含まれます。

JBoss EAP で Maven を使用する方法の詳細は、JBoss EAP Development Guide の Using Maven with JBoss EAP を参照してください。

クイックスタートを用いた Maven の使用

アプリケーションをビルドし、JBoss EAP 7 にデプロイするのに必要なアーティファクトと依存関係はパブリックリポジトリーでホストされます。JBoss EAP 7 のクイックスタートでは、Maven settings.xml ファイルを設定して、クイックスタートをビルドするときにこれらのリポジトリーを使用する必要がなくなりました。Maven リポジトリーはクイックスタートプロジェクト POM ファイルに設定されるようになりました。この設定方法は、クイックスタートを容易に使えるようにするために提供されますが、ビルドが遅くなる可能性があるため、通常は本番プロジェクトでの使用は推奨されません。

Red Hat JBoss Developer Studio には Maven が含まれるため、個別にダウンロードおよびインストールする必要はありません。JBoss Developer Studio のバージョン 9.1 以上を使用することが推奨されます。

Maven コマンドラインを使用してアプリケーションをビルドおよびデプロイする場合は、最初に Apache Maven プロジェクトから Maven をダウンロードし、Maven のドキュメントに記載されている手順に従ってインストールします。

クイックスタートのダウンロードおよび実行

クイックスタートのダウンロード

JBoss EAP には、さまざまな Java EE 7 の技術を使用してアプリケーションを作成するのに役立つ包括的なクイックスタートコードサンプルが含まれています。クイックスタートは Red Hat カスタマーポータルからダウンロードできます。

Red Hat カスタマーポータルにログインします。

ダウンロードをクリックします。

製品のダウンロードリストで Red Hat JBoss Enterprise Application Platform をクリックします。

Version ドロップダウンメニューで希望のバージョンを選択します。

表で Red Hat JBoss Enterprise Application Platform 7.0.0 Quickstarts を見つけ、Download をクリックします。

ZIP ファイルを希望の場所に保存します。

Zip ファイルを展開します。

JBoss Developer Studio でのクイックスタートの実行

クイックスタートがダウンロードされたら、JBoss Developer Studio にインポートし、JBoss EAP にデプロイできます。

クイックスタートの JBoss Developer Studio へのインポート.  各クイックスタートには、プロジェクトおよび設定情報が含まれる POM ファイルが同梱されています。この POM ファイルを使用すると、簡単にクイックスタートを JBoss Developer Studio にインポートできます。

重要

JBoss Developer Studio へのインポート時にクイックスタートプロジェクトフォルダーが IDE ワークスペース内にある場合、IDE は無効なプロジェクト名と WAR アーカイブ名を生成します。作業を開始する前に、クイックスタートプロジェクトフォルダーが IDE ワークスペースの外部にあることを確認してください。

JBoss Developer Studio を起動します。

File → Import と選択します。

Maven → Existing Maven Projects と選択し、Next をクリックします。

図3.7 既存の Maven プロジェクトのインポート

希望のクイックスタートのディレクトリー (helloworld など) を参照し、OK をクリックします。Projects リストボックスに、選択したクイックスタートプロジェクトの pom.xml ファイルが示されます。

図3.8 Maven プロジェクトの選択

Finish をクリックします。

helloworld クイックスタートの実行.  helloworld クイックスタートを実行すると、JBoss EAP サーバーが適切に設定および実行されたことを簡単に検証できます。

サーバーを定義していない場合は、JBoss EAP サーバーを JBoss Developer Studio へ追加します。

Project Explorer タブの jboss-helloworld プロジェクトを右クリックし、Run As → Run on Server と選択します。

図3.9 Run As - Run on Server

リストから JBoss EAP 7.0 を選択し、Next をクリックします。

図3.10 Run on Server

jboss-helloworld クイックスタートはすでにリストされ、サーバー上で設定できる状態です。Finish をクイックしてクイックスタートをデプロイします。

図3.11 サーバーで設定されたリソースの変更

結果を検証します。

Server タブで、JBoss EAP 7.0 サーバーの状態が Started に代わります。

Console タブに、JBoss EAP サーバーの起動と helloworld クイックスタートのデプロイメントに関するメッセージが表示されます。

WFLYUT0021: Registered web context: /jboss-helloworld
WFLYSRV0010: Deployed "jboss-helloworld.war" (runtime-name : "jboss-helloworld.war")

helloworld アプリケーションは http://localhost:8080/jboss-helloworld で使用でき、Hello World! というテキストが表示されます。

bean-validation クイックスタートの実行.  bean-validation などの一部のクイックスタートは、ユーザーインターフェースレイヤーの代わりに Arquillian テストを提供して機能を示します。

bean-validation クイックスタートを JBoss Developer Studio にインポートします。

Servers サーバータブでサーバーを右クリックし、Start を選択して JBoss EAP サーバーを起動します。Servers タブが表示されない場合や、サーバーが定義されていない場合は、JBoss EAP サーバーを Red Hat JBoss Developer Studio へ追加してください。

Project Explorer タブで jboss-bean-validation プロジェクトを右クリックし、Run As → Maven Build と選択します。

以下を Goals 入力フィールドに入力し、Run を実行します。

clean test -Parq-wildfly-remote

図3.12 設定の編集

結果を検証します。

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] ------------------------------------------------------------------------

コマンドラインでのクイックスタートの実行

Maven を使用すると、コマンドラインから簡単にクイックスタートをビルドおよびデプロイできます。Maven がインストールされていない場合は Apache Maven プロジェクトを参照し、ダウンロードとインストールを行ってください。

README.md ファイルは、システム要件、Maven の設定、ユーザーの追加、およびクイックスタートの実行に関する一般的な情報が含まれるクイックスタートのルートディレクトリーにあります。

各クイックスタートには、クリックスタートを実行するための特定の手順と Maven コマンドが含まれる独自の README.md ファイルも含まれます。

コマンドラインでの helloworld クイックスタートの実行

helloworld クイックスタートのルートディレクトリーにある README.md ファイルを確認します。

JBoss EAP サーバーを起動します。

$ EAP_HOME/bin/standalone.sh

helloworld クイックスタートディレクトリーへ移動します。

クイックスタートの README.md ファイルにある Maven コマンドを使用して、クイックスタートをビルドおよびデプロイします。

mvn clean install wildfly:deploy

helloworld アプリケーションは http://localhost:8080/jboss-helloworld で使用でき、Hello World! というテキストが表示されます。

付録A リファレンス資料

サーバーランタイム引数

アプリケーションサーバーの起動スクリプトは実行時に引数とスイッチを受け入れます。そのため、standalone.xml、domain.xml、および host.xml 設定ファイルに定義されていない他の設定でサーバーを起動できます。

他の設定には、ソケットバインディングの代替セットを持つサーバーの起動や 2 次設定が含まれていることがあります。

help スイッチ -h または --help を起動時に渡すと、利用可能なパラメーターのリストを使用できます。

表A.1 ランタイムスイッチおよび引数

引数またはスイッチ
操作モード
説明

--admin-only

スタンドアロン

サーバーの実行タイプを ADMIN_ONLY に設定します。これにより管理インターフェースが開かれ、管理リクエストが許可されますが、他のランタイムサービスは起動されず、エンドユーザーのリクエストは許可されません。

--admin-only

ドメイン

ホストコントローラーの実行タイプを ADMIN_ONLY に設定します。これにより管理インターフェースが開かれ、管理リクエストが許可されますが、サーバーは起動しません。ホストコントローラーがドメインのマスターである場合はスレーブホストコントローラーからの受信接続が許可されます。

-b=<value>、-b <value>

スタンドアロン、ドメイン

パブリックインターフェースのバインドアドレスを設定するために使用される jboss.bind.address システムプロパティーを設定します。値の指定がない場合は、デフォルトで 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>]

スタンドアロン

オプションの引数を用いてデバッグモードを有効にし、ポートを指定します。起動スクリプトがサポートする場合のみ動作します。

-D<name>[=<value>]

スタンドアロン、ドメイン

システムプロパティーを設定します。

--domain-config=<config>

ドメイン

使用するサーバー設定ファイルの名前。デフォルトは domain.xml です。

-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 です。

-u=<value>、-u <value>

スタンドアロン、ドメイン

設定ファイルの socket-binding 要素のマルチキャストアドレスを設定するために使用される jboss.default.multicast.address システムプロパティーを設定します。値の指定がない場合はデフォルトで 230.0.0.4 が指定されます。

-v、-V、--version

スタンドアロン、ドメイン

アプリケーションサーバーのバージョンを表示し、終了します。

警告

JBoss EAP に同梱される設定ファイルは、スイッチ (-b、-u など) を処理するよう設定されます。スイッチによって制御されるシステムプロパティーを使用しないよう設定ファイルを変更した場合は、実行するコマンドにスイッチを追加しても効果はありません。

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>

ユーザーの名前。英数字と ,./=@\. のみが有効です。

-r、--realm <value>

管理インターフェースをセキュアにするために使用されるレルムの名前。省略した場合、デフォルト値は ManagementRealm です。

-s、--silent

コンソールへ出力せずに add-user スクリプトを実行します。

-e、--enable

ユーザーを有効にします。

-d、--disable

ユーザーを無効にします。

-cw、--confirm-warning

対話モードで自動的に警告を確認します。

-h、--help

add-user スクリプトの使用情報を表示します。

インターフェース属性

表A.3 インターフェース属性と値

インターフェース要素
説明

any

インターフェースの選択基準の一部は、最低でも基準のネストされたセットの 1 つ (すべてとは限らない) を満たす必要があることを示す要素。

any-address

このインターフェースを使用するソケットをワイルドカードアドレスにバインドする必要があることを示す空の要素。java.net.preferIPv4Stack システムプロパティーが true に設定されていない限り、IPv6 ワイルドカードアドレス (::) が使用されます。true に設定された場合は、IPv4 ワイルドカードアドレス (0.0.0.0) が使用されます。ソケットがデュアルスタックマシンの IPv6 anylocal アドレスにバインドされた場合は、IPv6 および IPv4 トラフィックを受け入れることができます。IPv4 (IPv4 マッピング) anylocal アドレスにバインドされた場合は、IPv4 トラフィックのみを受け入れることができます。

inet-address

IPv6 または IPv4 のドット区切り表記の IP アドレス、または IP アドレスに解決できるホスト名。

link-local-address

インターフェースの選択基準の一部として、関連付けられたアドレスがリンクローカルであるかどうかを示す空の要素。

loopback

インターフェースの選択基準の一部として、ループバックインターフェースであるかどうかを示す空の要素。

loopback-address

マシンのループバックインターフェースで実際には設定できないループバックアドレス。IP アドレスが関連付けられた NIC が見つからない場合であっても該当する値が使用されるため、inet-address タイプとは異なります。

multicast

インターフェースの選択基準の一部として、マルチキャストをサポートするかどうかを示す空の要素。

nic

ネットワークインターフェースの名前 (eth0、eth1、lo など)。

nic-match

使用できるインターフェースを見つけるために、マシンで利用可能なネットワークインターフェースの名前を検索する正規表現。

not

インターフェースの選択基準の一部は、基準のネストされたセットを満たしてはならないことを示す要素。

point-to-point

インターフェースの選択基準の一部として、ポイントツーポイントインターフェースであるかどうかを示す空の要素。

public-address

インターフェースの選択基準の一部として、公開されたルーティング可能なアドレスを持つかどうかを示す空の要素。

site-local-address

インターフェースの選択基準の一部として、関連付けられたアドレスがサイトローカルであるかどうかを示す空の要素。

subnet-match

「スラッシュ表記法」で記述されたネットワーク IP アドレスとアドレスのネットワーク接頭辞のビット数 (たとえば、192.168.0.0/16)。

up

インターフェースの選択基準の一部として、現在稼動しているかどうかを示す空の要素。

virtual

インターフェースの選択基準の一部として、仮想インターフェースであるかどうかを示す空の要素。

ソケットバインディング属性

表A.4 ソケットバインディング属性

属性
説明

client-mappings

このソケットバインディングのクライアントマッピングを指定します。このソケットへ接続するクライアントは、希望のアウトバウンドインターフェースと一致するマッピングに指定された宛先アドレスを使用する必要があります。これにより、ネットワークアドレスの変換を使用する高度なネットワークトポロジーまたは複数のネットワークインターフェースにバインディングを持つ高度なネットワークトポロジーが機能します。各マッピングは宣言された順序で評価される必要があり、最初に一致したマッピングを使用して宛先が決定されます。

fixed-port

ソケットグループの他のソケットに数値のオフセットが適用された場合でもポートの値を固定したままにするかどうか。

interface

ソケットがバインドされる必要があるインターネットの名前、またはマルチキャストソケットの場合はリッスンするインターフェース。宣言されたインターフェースの 1 つである必要があります。定義されないと、エンクロージングソケットバインディンググループからの default-interface の値が使用されます。

multicast-address

ソケットがマルチキャストトラフィックを受信するマルチキャストアドレス。指定しないと、ソケットがマルチキャストを受信するよう設定されません。

multicast-port

ソケットがマルチキャストトラフィックを受信するポート。multicast-address が設定されている場合に設定する必要があります。

name

ソケットの名前。ソケット設定情報にアクセスする必要があるサービスは、この名前を使用してソケット設定情報を探します。必須の属性です。

port

ソケットがバインドされる必要があるポートの番号。サーバーによってポートオフセットが適用され、ポートの値がすべて増加または減少される場合、この値は上書きされることに注意してください。

デフォルトのソケットバインディング

表A.5 デフォルトのソケットバインディング

名前
ポート
マルチキャストポート
説明
ソケットバインディンググループ

ajp

8009

Apache JServ プロトコル。HTTP クラスタリングおよび負荷分散に使用されます。

standard-sockets、ha-sockets、full-sockets、full-ha-sockets

http

8080

デプロイされた Web アプリケーションのデフォルトポート。

standard-sockets、ha-sockets、full-sockets、full-ha-sockets

https

8443

デプロイされた Web アプリケーションとクライアントとの間の SSL で暗号化された接続。

standard-sockets、ha-sockets、full-sockets、full-ha-sockets

iiop

3528

JTS トランザクションおよび他の ORB 依存サービス用の CORBA サービス。

full-sockets、full-ha-sockets

iiop-ssl

3529

SSL 暗号化 CORBA サービス。

full-sockets、full-ha-sockets

jgroups-mping

45700

マルチキャスト。HA クラスターでの初期メンバーシップの検出に使用されます。

ha-sockets、full-ha-sockets

jgroups-tcp

7600

TCP を使用した、HA クラスター内でのユニキャストピア検出。

ha-sockets、full-ha-sockets

jgroups-tcp-fd

57600

TCP を介した HA 障害検出に使用されます。

ha-sockets、full-ha-sockets

jgroups-udp

55200

45688

UDP を使用した、HA クラスター内でのマルチキャストピア検出。

ha-sockets、full-ha-sockets

jgroups-udp-fd

54200

UDP を介した HA 障害検出に使用されます。

ha-sockets、full-ha-sockets

management-http

9990

管理レイヤーを用いた HTTP 通信に使用されます。

standard-sockets、ha-sockets、full-sockets、full-ha-sockets

management-https

9993

管理レイヤーを用いた HTTPS 通信に使用されます。

standard-sockets、ha-sockets、full-sockets、full-ha-sockets

modcluster

23364

JBoss EAP と HTTP ロードバランサー間の通信に対するマルチキャストポート。

ha-sockets、full-ha-sockets

txn-recovery-environment

4712

JTA トランザクションリカバリーマネージャー。

standard-sockets、ha-sockets、full-sockets、full-ha-sockets

txn-status-manager

4713

JTA / JTS トランザクションマネージャー。

standard-sockets、ha-sockets、full-sockets、full-ha-sockets