WildFlyよくある質問
このFAQについて
なるべく簡潔でコンパクトなWildFlyのFAQをまとめたいと思っています。
初級者向けです。追加してほしい項目などがあったらコメントしてください。検討します。ドメインやクラスタの設定、Apacheとの連携などの中級者以上のもの、本番環境向けのもの、アドバンスドな内容についてはFAQに置くべきものではないのでドキュメントを参照するかフォーラムで質問するのが良いでしょう。
WildFlyって何?
JBoss.orgが提供するJava EE 7アプリケーションサーバです。Javaで記述されたサーバサイドアプリケーションを動作させるための基盤を提供します。以前はJBoss ASという名前でした。ASはApplication Serverの略です。
JBoss ASはなぜバージョン8からWildFlyという名前に変わったの?
JBoss ASは単に"JBoss"と表記されることが多かったのですが、"JBoss"という語がJBossコミュニティ、Red Hatの商用製品のブランド名であるところのRed Hat JBoss Middleware、そしてJBoss Application Serverという複数の意味で使われており非常に混乱していました。"JBoss"という語でWeb検索するとわかりますが、これらの複数の意味で使われているものが全て混ざった結果が表示され、関連情報を検索するにも一苦労でした。このような混乱を解消するための改名です。
なぜ超高速なの?
JBoss AS7はなぜ速いのかを参照してください。AS7の後継であるWildFlyも同様です。
インストール
ダウンロードサイト http://wildfly.org/downloads/ から.zipもしくは.tar.gzのバイナリアーカイブをダウンロードします。
ダウンロードしたアーカイブを適当な場所で展開するだけでインストールは終了です。インストールされたWildFlyのディレクトリは一般的に$WFLY_HOMEと表記します。
Web Profile起動
$WFLY_HOME/bin/standalone.shを実行するとWeb Profileで起動します。利用される設定ファイルは$WFLY_HOME/standalone/configuration/standalone.xmlです。Windowsの方は.shを.batで読み替えてください。
$WFLY_HOME/bin/standalone.sh
Full Profile起動
standalone.shに-c standalone-full.xmlというオプションを付けてを実行するとFull Profileで起動します。利用される設定ファイルは$WFLY_HOME/standalone/configuration/standalone-full.xmlです。
$WFLY_HOME/bin/standalone.sh -c standalone-full.xml
Web Profileって何が使えるの?
Web Profile仕様としてはServlet, JAX-RS, JSP, JSF, EL, JSTL, EJB Lite, JPA, CDI, Managed Beans, Intercepters, Bean Validation, JTA が使えます。WildFlyのWeb Priofileでは左記に加えConcurrency Utilities, JAX-WS、JavaMailなども利用できるようになっています。
本来のJava EE 7仕様のプロファイルは http://en.wikipedia.org/wiki/Java_EE_version_history#Java_EE_7_.28June_12.2C_2013.29 を参照してください。
Web ProfileとFull Profileの違い
Full Profileでは以下の技術が有効化されています。JMS, JCA, MDB, Batchを利用したい場合はFull Profileを利用すれば良いです。
- JMS
- JCA
- EJB (MDBなどを含む完全版)
- Batch
- IIOP
- JAXR
停止
停止は起動したコンソールでCtrl+cを押すことで停止できます。通常のアプリケーションと一緒です。
管理CLIを利用してシャットダウンする場合は以下のコマンドでシャットダウンできます。
$WFLY_HOME/bin/jboss-cli.sh -c --command=":shutdown"
アプリケーションのサンプル
アプリケーションのサンプルはGitHubでホストされているQuickstarts https://github.com/wildfly/quickstartに含まれています。
管理GUI
起動後に http://localhost:8080/console で管理GUIにアクセスできます。管理GUIにはセキュリティ保護が設定されているので、管理ユーザの設定が必要です。
管理ユーザ設定
add-user.shを実行することで管理ユーザを設定することができます。Management Userの追加、ユーザ名入力、パスワード入力、ロール入力、確認、コンテナ連携ユーザ追加というステップになっています。デフォルトがあるものはデフォルトのままEnterを押せば良いです。最後の質問はnoでもyesでも大丈夫です、複数コンテナ連携はすぐには利用しません。
$WFLY_HOME/bin/add-user.sh
ネットワークアクセスの有効化
WildFlyは、不用意にアプリケーションサーバを外部公開しないようデフォルトではローカルアドレス(127.0.0.1)にサーバソケットをバインドします。つまり、別のPCなどから http://<そのマシンのIPアドレス>:8080/ などにアクセスしても繋がらないようになっています。
ネットワークアクセスを有効化するには以下のように-b 0.0.0.0を起動オプションに追加指定します。0.0.0.0はワイルドカードアドレス、もしくはANYアドレスと呼ばれるアドレスです。
$WFLY_HOME/bin/standalone.sh -b 0.0.0.0
デプロイ方法
$WFLY_HOME/standalone/deployments/ ディレクトリにアーカイブをコピーすることでデプロイできます。ここではJDBCドライバをデプロイしていますが、もちろんwarやearも同じようにできます。
cp /usr/share/java/postgresql-jdbc.jar $WFLY_HOME/standalone/deployments/
アンデプロイはファイルを消去すれば良いです。
rm $WFLY_HOME/standalone/deployments/postgresql-jdbc.jar
もちろん管理CLIを利用してデプロイやアンデプロイをすることもできます。
$WFLY_HOME/bin/jboss-cli.sh -c --command="deploy /usr/share/java/postgresql-jdbc.jar" $WFLY_HOME/bin/jboss-cli.sh -c --command="undeploy postgresql-jdbc.jar"
データベースの設定
管理GUIでは以下の手順で編集に入ることができます。JDBCドライバは先にデプロイしておいてください。
- 右上の"Profile"を選択
- 左の"Profile"ツリーから"Connector", "Datasources"を選択
- データソース一覧テーブルの右上の"Add"ボタンを選択
- 入力フォームに入力。入力内容の例はこの下の管理CUIのものを参照。
管理CLIでデータソース作成、有効化と消去。
$WFLY_HOME/bin/jboss-cli.sh -c --command="data-source add --name=H2DS --jndi-name=java:jboss/datasources/H2DS --driver-name=h2 --connection-url=jdbc:h2:mem:h2ds --user-name=sa --password=sa" $WFLY_HOME/bin/jboss-cli.sh -c --command="data-source enable --name=H2DS" $WFLY_HOME/bin/jboss-cli.sh -c --command="data-source remove --name=H2DS"
standalone/configurationディレクトリの内容
standalone.xml以外は特に編集したり見たりする必要はほぼ無いです。
- application-roles.properties, application-users.properties
- アプリケーション用のユーザやロールを定義するファイル。デフォルトは空定義。
- logging.properties
- 起動中のログ設定ファイル。起動以外のログ設定はstandalone.xml側なので注意。
- mgmt-users.properties
- JBoss AS管理用ユーザを定義するファイル。
- standalone-full-ha.xml
- Full Profile、クラスタ有効の設定ファイル。
- standalone-full.xml
- Full Profileの設定ファイル。
- standalone-ha.xml
- Web Profile、クラスタ有効の設定ファイル。
- standalone.xml
- WebProfileの設定ファイル。設定ファイルを指定しなかった場合のデフォルト。
- standalone_xml_historyディレクトリ
- standalone.xmlのバックアップが格納されるディレクトリ。設定間違えたときでも簡単に戻すことができます。
ドメイン
standaloneと並んでdomainというディレクトリやシェルスクリプトがあるので気になる方も居るでしょう。
ドメインとはJBoss AS 7から導入された複数のインスタンスをグループ化して統合管理する仕組みです。企業内、部署内、一つのシステム、というような単位で利用されるJBoss ASのインスタンス群を「ドメイン」とし、ドメインコントローラと呼ばれる管理ノードから管理されるインスタンス群の起動や停止、変更設定が可能になっています。
複数のインスタンスを管理運用するための仕組みなので、単一ノードで利用する場合や開発で利用する場合は調べたり覚えたりする必要はありません。
ドキュメント
英語のドキュメントは https://docs.jboss.org/author/display/WFLY8/Documentation にあります。
商用利用はできますか?
コミュニティ版のWildFlyを商用利用することはできますが、セキュリティの観点から外部からアクセス可能なパブリックなサービスに利用するのはオススメしません。コミュニティ版の利用はお試し利用、重要度の低い内部サービスにとどめておいたほうが無難です。エンタープライズ用途でのセキュリティアップデートやバグ修正はエンタープライズ版のJBoss EAPで提供されていますので、そちらの利用を検討してください。コミュニティ版JBoss ASとエンタープライズ版JBoss EAPの違いも参考にしてください。
わからないことがあったら
フォーラム https://community.jboss.org/groups/japan-jbug?view=discussions で質問すると詳しい人が助けてくれるかもしれません。
Comments