WildFly情報
- WildFlyとは
- 主な特徴
- メリット・デメリット
- ユースケース
- WildFlyの商用利用
- WildFlyのバージョン確認方法
- 動作環境
- WildFlyのライセンス
- 製品ダウンロード
- 参考情報
- オープンソース年間サポートサービス
WildFlyとは
WildFly(ワイルドフライ)はRed Hatが開発するアプリケーションサーバJBoss EAP(Enterprise Application Platform)のコミュニティ版で、オープンソースソフトウェア(OSS)として提供されています。
以前は JBoss AS (Application Server)と呼ばれていましたが、エンタープライズ版であるJBoss EAPとの混同を避けるため、2014年11月のバージョン8より WildFlyと改名されました。この名前には素早く・軽く・自由にという意味も込められています。
WildFlyはJakarta EE仕様の強力な実装であり、近年ではEclipse MicroProfileテクノロジーにも対応しています。
JBoss EAPとの違い
- 新機能はWildFly (JBoss AS)で先行して実装され、それをベースにJBoss EAPが開発されています
- JBoss EAPが有償であるのに対し、WildFlyは無償使用できます
- JBoss EAPのメジャーバージョンアップが数年間隔であるのに対し、WildFlyは年に数回と非常に速いスピードでバージョンアップされます
- 不具合や脆弱性が見つかった場合、JBoss EAPでは既存バージョンに対するパッチが提供されますが、WildFlyの場合はその時点での最新版に対するマイナーリリースという形で対応されます
- したがって、WildFlyの不具合や脆弱性解消を目的としてバージョンアップを行う際に、たとえばJava EEからJakarta EEのような互換性のない仕様変更を伴う可能性があり、アプリケーション修正が必要となる場合があります
JBoss EAPとそのベースであるWildFly (JBoss AS)との対応関係は下記になります。
| JBoss EAP | 対応するWildFly (JBoss AS) | Jakarta(Java EE) |
|---|---|---|
| JBoss EAP 4 | JBoss AS 4 | J2EE 1.4 |
| JBoss EAP 5 | JBoss AS 5 | Java EE 5 |
| JBoss EAP 6 | JBoss AS 7 | Java EE 6 |
| JBoss EAP 7.0 | WildFly 10 | Java EE 7 |
| JBoss EAP 7.1 | WildFly 11 | Java EE 7 |
| JBoss EAP 7.2 | WildFly 14 | Java EE 8 |
| JBoss EAP 7.3 | WildFly 18 | Java EE 8(Jakarta EE8) |
| JBoss EAP 7.4 | WildFly 23 | Jakarta EE8,EE9.1 Preview |
| JBoss EAP 8 | WildFly 28 | Jakarta EE10 |
| JBoss EAP 8.1 | WildFly 35 | Jakarta EE10 |
WildFlyはJakarta EE互換実装の認定を受けており、バージョンの対応関係は以下の通りです。
- WildFly 26ではJakarta EE8、およびEE9.1 Preview
- WildFly 27以降はJakarta EE10
- WildFly 40以降はJakarta EE11
またEclipse MicroProfile プラットフォーム仕様に準拠した実装でもあります。
2026年9月現在の最新バージョンWildFly 41についての詳細は以下を参照ください。
Apache Tomcatとの違い
Apache Tomcatは広く利用されているアプリケーションサーバですがJakarta EE のうち実装されているのはServletやJSPなど一部の機能に留まります。それに対しWildFlyでは全ての機能が実装されています。
- https://tomcat.apache.org/whichversion.html
- https://docs.wildfly.org/41/Getting_Started_Guide.html#standards_support
主な特徴
WildFlyの主な特徴は以下の通りです。
|
軽快な動作、安定性 |
速い起動、高度なメモリ管理による使用メモリの削減、高速なWEBコンテナUndertowにより、軽快で安定した動作を行います。 |
|---|---|
|
マルチプラットフォーム |
WildFlyはJavaで書かれているため、LinuxやWindowsを始めとするJDKが対応しているさまざまなプラットフォームで動作させることが可能です。 |
|
カスタマイズが容易 |
必要に応じてプラグインサブシステムの追加や削除が行えるようになり、カスタマイズが容易になりました。 |
|
強力な管理機能 |
WEBベースの管理アプリケーション(管理コンソール)やCLI(jboss-cli)による強力な管理機能が提供されています。 |
|
JARのモジュール化 |
JARファイルのモジュール化により、必要最小限の機能を組み込むことで、軽量化と柔軟性を実現しています。また、モジュールはjboss-deployment-structure.xml に依存関係を記述することでアプリケーションから使用することも可能です。 |
|
2つのモード |
動作モードとして、従来のスタンドアローンモードに加え、複数のインスタンスを一括管理することが可能なドメインモードが用意されています。 |
メリット・デメリット
メリット・必要性
WildFlyを採用するメリットと必要性は以下の点にあります。
-
オープンソースかつ無料
インストールするだけで全ての機能が無料ですぐに利用可能です。ソースコードを参照することも可能です。 -
コミュニティのサポート
コミュニティが活発に活動しており、現在も改善や新機能の追加が行われています。 -
高い性能とスケーラビリティ
特徴である軽快な動作を維持しながら、高可用性(HA)や負荷分散にも対応しています。 -
Jakarta EEフルコンプライアント
標準技術のJakarta EEにフル互換しており、多くのエンタープライズ向け機能が利用可能です。 -
柔軟性の高さ
バージョンアップのサイクルが速く、商用版のJBossEAPに先駆けて最新の技術を取り入れています。
デメリット・注意点・課題
WildFlyを採用するにあたっての注意点や課題は以下です。
-
開発元によるサポートがない
主な開発元であるRed Hat社からの技術サポート提供がないため、障害発生時の技術調査を依頼することができません。
しかしながら、これについてはOpenStandiaが提供する技術サポートに加入することで補完することが可能です。 -
学習コストが高い
Apache Tomcatなど他のアプリケーションサーバと設定ファイルや運用方法が異なるため、新たに学習する必要があります。 -
パッチは提供されない
不具合や脆弱性の修正はパッチではなくバージョンアップで対応されます。 -
JBoss EAPへの移行を迫られる可能性がある
不具合や脆弱性の修正は最新版を対象としたバージョンアップという形で行われ、それ以前のバージョンに対するパッチ等の提供はありません。
したがって最新版へのバージョンアップを試みた場合に、たとえばJakarta EEへの変更のような互換性のない変更が入る可能性があります。そのような場合、アプリケーションの修正影響を軽減するために、より機能差異の少ないJBoss EAP への移行を検討せざるを得なくなる可能性があります。
ユースケース
豊富な機能を提供しているWildFlyに関するシステム導入のユースケースとそのメリットを示します。
金融機関のインターネットバンキングシステム
高い信頼性と安定性
- 大量のトランザクション処理をする金融機関のシステムにおいて、高い信頼性と安定性を提供します
- クラスタリング機能により、一部のノードで障害が発生しても他のノードでサービスを継続させることで可用性を確保できます
セキュリティ
- 顧客情報や取引データを厳重に保護する必要がある金融システムにおいて、認証、認可、暗号化などの充実した機能により、セキュアなシステムの実現に寄与します
トランザクション管理
- 分散トランザクション管理機能により複数のデータベースやシステムにまたがるトランザクションの一貫性を保証します
スケーラビリティ
- 柔軟にスケールアウトすることができるため、システム負荷増大時にも性能を維持することができます
- クラウド環境との連携により、必要に応じてリソースを動的に増減させる構成も可能になります
開発効率向上
- Java EEの標準仕様サポートにより、豊富な機能を利用できます
- 活発なコミュニティ活動と豊富なドキュメントがあるため、開発に必要な情報が充実しています
物流会社の配送管理システム
高い信頼性と安定性
- 多くの配送車両や荷物のリアルタイム管理に適した安定性を備えています
- クラスタリング機能を活用した高可用性により、システムのダウンタイムを最小限に抑えることができます
トランザクション管理
- 分散トランザクション管理機能により、配送指示の発行、在庫管理、請求処理など複数の処理をデータの一貫性を保ちながら実行管理できます
スケーラビリティ
- 配送量の増加やサービス範囲の拡大に応じて、柔軟にシステムを拡張できます
メッセージング
- 配送状況のリアルタイム更新、配信、配送ドライバーとの通信などの非同期なメッセージング処理に適用できます
RESTful API
- 外部システムとの連携を容易にできるので、顧客に配送状況を通知するシステムやGPSデバイスで配送車両の位置情報を取得するような機能の開発にも適しています
バッチ処理
- 売上集計、配送計画など定期的なバッチ処理のスケジューラとして適したシステムです
マイクロサービスアーキテクチャにおけるAPIサーバ
IoTデバイス管理API
- IoTデバイスのデータ収集や制御を行うAPIを構築できます
決済処理API
- Eコマースの各種決済処理を提供するAPIを構築できます
API公開
- 自サービスのAPIを公開することで、外部の開発者がそれを利用してビジネス機会を拡大できるようになります
WildFlyの商用利用
ユースケースで紹介したとおり、WildFlyは商用利用に応えられるだけの機能や品質を備えており、採用実績も十分にあります。
ただし、脆弱性対応版はその時点での最新バージョンをベースにしたもののみリリースされるため、継続的に最新バージョンに追随するか、あるいはWildFly自体の設定やその前段に立つWebサーバ、ロードバランサの機能で回避する必要があります(ただし回避策がない場合もあります)。
そのいずれも難しい場合には、長期サポート(LTS)バージョンの存在するJBossEAPの利用も視野に入れる必要があります。
WildFlyのバージョン確認方法
WildFlyのバージョンはWildFly起動時のコンソールまたはログ(server.log)に出力されます。
WildFlyを起動せずに確認するには、以下の様に-v(バージョン)オプションをつけて起動スクリプトを実行してください。以下の例ではWildFly 41.0.1.Finalと出力されています。
./standalone.sh -v
JBoss Bootstrap Environment
JBOSS_HOME: /opt/wildfly-41.0.1.Final
JAVA: /usr/local/jdk/jdk-17.0.12/bin/java
JAVA_OPTS: -Xmx16m
21:24:51,413 INFO [org.jboss.modules] (main) JBoss Modules version 2.1.6.Final WildFly 41.0.1.Final (WildFly Core 33.0.1.Final)
動作環境
WildFlyの各バージョンで必要となる動作環境は以下のとおりです。
|
WildFlyバージョン |
Java仮想マシンのバージョン |
|---|---|
|
WildFly 8~26 |
Java 8 以上 |
|
WildFly 27~34 |
Java 11 以上 |
|
WildFly 35~ |
Java 17 以上 |
WildFlyのライセンス
WildFlyのライセンスは2026年現在、Apache License, Version 2.0です。WildFly 29以前はGNU Lesser General Public License (LGPL)でしたが、WildFly 30以降はApache License, Version 2.0となりました。
WildFlyは営利、非営利を問わず、ライセンス条件の範囲内で誰でも自由かつ無償で利用・改変・再配布できるようになっています。
製品ダウンロード
以下はWildFlyの簡単なインストール例です。インストールするWildFlyのバージョンは41.0.1とします。
OSサービスへの登録や管理コンソールの利用方法などの詳細については公式ドキュメントをご確認下さい。
Javaのインストール状態確認
WildFlyのバージョンに対応するJavaがインストール済であることを確認します。
# java -version
java version "17.0.12" 2024-07-16 LTS
Java(TM) SE Runtime Environment (build 17.0.12+8-LTS-286)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.12+8-LTS-286, mixed mode, sharing
WildFlyのダウンロード
WildFlyのダウンロードサイトより、対象バージョンのWildFly Distributionをダウンロードし、インストールディレクトリに配置します。この例ではwildfly-41.0.1.Final.tar.gzを使用します。
wildfly-41.0.1.Final.tar.gz を展開
インストールディレクトリに移動し、wildfly-41.0.1.Final.tar.gzを展開します。
tar -xzvf ./wildfly-41.0.1.Final.tar.gz
WildFly を起動
起動スクリプトstandalone.shを実行します(Windowsの場合はstandalone.bat)。
cd ./wildfly-41.0.1.Final/bin
./standalone.sh
実行時のログが出力され、最後に起動完了ログが表示されます。
20:20:01,799 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0025: WildFly 41.0.1.Final (WildFly Core 33.0.1.Final) started in 6586ms - Started 335 of 539 services (348 services are lazy, passive or on-demand) - Server configuration file in use: standalone.xml - Minimum feature stability level: community
WildFlyの停止は Ctrl+Cか、Jboss-cliで行います。
ブラウザからアクセス
ブラウザでhttp://localhost:8080/ へアクセスを行うとWildFly のトップ画面が表示されます。
デフォルトの起動方法では localhost(127.0.0.1) 以外から接続できません。外部から接続可能にするには、起動スクリプトに”-b”(bindアドレス)オプションをつけて実行してください。
/standalone.sh -b 0.0.0.0
参考情報
オープンソース年間サポートサービス
OpenStandiaではOSSを安心してご利用いただけるように、オープンソース年間サポートサービスをご提供しております。
サポートしているOSSは下記ページをご参照ください。

