第8章 JBoss EAP の旧リリースからの移行
8.1. JBoss EAP 5 から JBoss EAP 7 への移行
本ガイドは、JBoss EAP 6 のアプリケーションを JBoss EAP 7 で正常に実行するために必要な変更に重点を置いています。アプリケーションを直接 JBoss EAP 5 から JBoss EAP 7 に移行する計画がある場合、移行の計画や実行に役立つリソースが複数あります。以下を行うことが推奨されます。
- 本ガイドの「各リリースに追加された変更の概要」で、JBoss EAP の各リリースに追加された変更の概要を確認します。
- JBoss EAP 6 の『移行ガイド』と本ガイドを読み、両方の内容を把握します。
- 特定のコンポーネントや機能に関する移行情報のリファレンスとして、JBoss EAP 5 コンポーネントのアップグレードリファレンス を使用します。
- ルールベースの Red Hat Application Migration Toolkit は、直接 JBoss EAP 5 から JBoss EAP 7 に移行するのに役立つツールを継続して追加します。これらのツールを使用してアプリケーションを分析し、JBoss EAP 7 への移行に必要な変更に関する詳細なレポートを生成します。詳細は、「Red Hat Application Migration Toolkit を使用した移行のアプリケーションの分析」を参照してください。
- カスタマーポータルのナレッジベース では、現在 JBoss EAP 5 から JBoss EAP 6 への移行に役立つ記事やソリューションを利用できます。JBoss EAP 5 から JBoss EAP 7 への移行に関するコンテンツを徐々に追加する計画があります。
8.2. 各リリースに追加された変更の概要
移行を計画する前に、JBoss EAP 6 と JBoss EAP 7 で追加された変更について認識できるようにしてください。
『JBoss EAP 6 移行ガイド』は、JBoss EAP 5 と JBoss EAP 6 との間で追加された変更を取り上げています。以下に、JBoss EAP 6 に追加された最も重要な変更の一覧を示します。
- モジュラーサービスコンテナーに構築される新しいアーキテクチャーを実装しました。
- Java Enterprise Edition 6 仕様の認定実装でした。
- ドメイン管理、新しいデプロイメント設定、および新しいファイルディレクトリー構造とスクリプトが導入されました。
- 新しい移植可能な JNDI ネームスペースを標準化しました。
JBoss EAP 6 に加えられた変更の詳細なリストは、JBoss EAP 6『移行ガイド』の「JBoss EAP 6 の新機能と変更内容」を参照してください。
JBoss EAP 7 は、JBoss EAP 6 と同じモジュラー構造に構築され、同じドメイン管理、デプロイメント設定、ファイルディレクトリー構造、およびスクリプトが含まれます。また、同じ標準化された JNDI ネームスペースも使用します。しかし、JBoss EAP 7 には以下の変更が追加されています。
- Java Enterprise Edition 7 仕様のサポートが追加されています。
- Web サーバーが Undertow に置き換えられました。
- JacORB IIOP 実装が OpenJDK ORB ダウンストリームブランチに置き換えられました。
- Apache ActiveMQ Artemis が新しいメッセージングプロバイダーとして含まれています。
-
cmp、jaxr、およびthreadsサブシステムが削除されました。 - DJB エンティティー bean のサポートが削除されました。
変更の完全リストは、JBoss EAP 7 の新機能 を参照してください。
8.3. Migration Guide (移行ガイド) の内容確認
各リリースの Migration Guide (移行ガイド) の内容をすべて確認し、追加された機能や非推奨となった機能について認識し、そのリリースの既存アプリケーションの実行に必要なサーバーの設定およびアプリケーションの変更について理解するようにしてください。
JBoss EAP 6 と JBoss EAP 7 の間では基盤のアーキテクチャーは変更されていないため、JBoss EAP 6 の『移行ガイド』に記載されている多くの変更内容は JBoss EAP 7 にも該当します。たとえば、「ほとんどのアプリケーションで必要な変更」に記載されている変更は、JBoss EAP 6 で追加された基盤のアーキテクチャーの変更に関連し、本リリースにも該当します。新しいモジュラークラスローティングシステムへの変更は重要で、ほぼすべての JBoss EAP 5 アプリケーションのパッケージ化や依存関係に影響します。「アプリケーションのアーキテクチャーやコンポーネントによって異なる変更」に記載されている変更の多くは、JBoss EAP 7 にも該当します。しかし、JBoss EAP 7 では web サーバー、 ORB、およびメッセージングプロバイダーが置き換えられ、cmp、threads、および jaxr サブシステムが削除され、さらに EJB エンティティー bean のサポートが削除されたため、これらのコンポーネントに関する変更については本書を参考にする必要があります。移行を始める前に、本ガイドの「サーバー設定の変更」および「アプリケーション移行の変更」に注意してください。
8.4. JBoss EAP 5 コンポーネントのアップグレードリファレンス
以下の表を使用して、特定の機能またはコンポーネントを JBoss EAP 5 から JBoss EAP 7.1 に移行する方法を検索してください。
| JBoss EAP 5の 機能またはコンポーネント | 変更の概要および 移行情報の場所 |
|---|---|
|
アプリケーションのパッケージ化およびクラスローティング |
JBoss EAP 6 では、以前の階層的なクラスローディング構造が JBoss Modules を基にしたモジュラーアーキテクチャーに置き換えられました。新しいモジュラークラスローディング構造の導入に伴い、アプリケーションのパッケージ化も変更になりました。このアーキテクチャーは JBoss EAP 7 でも使用されています。新しいモジュラーアーキテクチャーに関する情報は、JBoss EAP 7.1『開発ガイド』の以下の章を参照にしてください。 新しいモジュラーアーキテクチャーのアプリケーションの更新および再パッケージ方法に関する情報は、JBoss EAP 6『移行ガイド』の以下の項を参照してください。 |
|
アプリケーション設定ファイル |
モジュラークラスローディングを使用する JBoss EAP 6 の変更に伴い、1 つ以上のアプリケーション設定ファイルを作成または編集して依存関係を追加したり、自動的な依存関係がロードされないようにする必要がある場合があります。これは JBoss EAP 7 でも変わっていません。詳細は、JBoss EAP 6 『移行ガイド』の以下の項を参照してください。 |
|
キャッシュおよび Infinispan |
JBoss EAP 6 では、サーバーによる内部使用のみで JBoss Cache が Infinispan に置き換えられました。アプリケーションコードで JBoss Cache を置き換える方法については、JBoss EAP 6『移行ガイド』の以下の項を参照してください。 JBoss EAP 7 で適用された Infinispan キャッシングストラテジーと設定の変更は、本ガイドの以下の項を参照してください。 |
|
データソースおよびリソースアダプター |
JBoss EAP 6 ではデータソースとリソースアダプターの設定が主に 1 つのファイルに集約されましたが、これは JBoss EAP 7 でも同様です。詳細は、JBoss EAP 6『移行ガイド』の以下の項を参照してください。 |
|
ディレクトリー構造、スクリプト、およびデプロイメント設定 |
JBoss EAP 6 では、ディレクトリー構造、スクリプト、およびデプロイメント設定が変更になりました。これらの変更は JBoss EAP 7 にも該当します。詳細は、JBoss EAP 6『移行ガイド』の以下の項を参照してください。 |
|
EJB |
Java EE 7 仕様によって、EJB 2.x およびそれ以前の機能が任意となったため、アプリケーションを書き直して EJB 3.x 仕様と JPA を使用するようにすることが強く推奨されます。非推奨となった機能と EJB 2.x の実行に必要な変更については、JBoss EAP 6 『Migration Guide』の以下の項を参照してください。
JBoss EAP 6 では、ステートフル EJB キャッシュおよびステートレスセッション bean プールサイズはサーバー設定ファイルの JBoss EAP 7 では、デフォルトのリモートコネクターとポートが変更になりました。この詳細とサーバー設定の変更については、本ガイドの以下の項を参照してください。 JBoss EAP 7 では、EJB エンティティー bean がサポートされません。エンティティー bean を JPA に移行する方法は、本ガイドの以下の項を参照してください。 |
|
Hibernate および JPA |
JBoss EAP 6 では、Hibernate がバージョン 3 から 4 に更新されました。この JBoss EAP バージョンは JPA 2.0 仕様も実装し、JPA 永続プロパティーに変更が加えられました。これらの変更に合わせてアプリケーションを編集する方法については、JBoss EAP 6『移行ガイド』を参照してください。 JBoss EAP 7 は JPA 2.1 を実装し、Hibernate 5 が含まれます。また、Hibernate Search をバージョン 4.6.x からバージョン 5.5.x に更新します。その他の変更には、EJB エンティティーbean のサポートの削除や JPA 永続プロパティーの追加更新が含まれます。これらの変更によるアプリケーションへの影響に関する情報は、本ガイドの以下の項を参照してください。 |
|
JAX-RS および RESTEasy |
JBoss EAP 6 は、自動的に RESTEasy とアプリケーション設定の必要な変更を設定した RESTEasy 2 をバンドルしました。詳細は、JBoss EAP 6『移行ガイド』の以下の項を参照してください。 JBoss EAP 7 には RESTEasy 3 が含まれ、多くのクラスが非推奨になりました。Jackson のバージョンが 1.9.9 から 2.6.3 以上に変更されました。これらの変更の詳細は、本ガイドの以下の項を参照してください。 |
|
JBoss AOP |
JBoss AOP (アスペクト指向プログラミング) は JBoss EAP 6 では削除されました。JBoss AOP を使用するアプリケーションをリファクタリングする方法については、JBoss EAP 6『移行ガイド』の以下の項を参照してください。 |
|
JGroups およびクラスタリング |
JBoss EAP 6 では、クラスタリングを有効にし、バインドアドレスを指定する方法が変更になりました。詳細は、JBoss EAP 6『移行ガイド』の以下の項を参照してください。
JBoss EAP 7 では、JGroups はデフォルトでパブリックではなくプライベートネットワークインターフェースを使用するようになり、さらに |
|
JNDI |
JBoss EAP 6 は新しい標準化されたグローバル JNDI ネームスペースを実装し、Java EE アプリケーションのさまざまなスコープへマップする関連するネームスペースを実装していました。新しい JNDI ネームスペースルールを使用するために必要なアプリケーションの変更については、JBoss EAP 6『移行ガイド』の以下の項を参照してください。 |
|
JSF |
JBoss EAP 6 には JSF 2.0 が含まれ、アプリケーションを設定して旧バージョンを使用することができました。JBoss EAP 7 には JSF 2.2 が含まれ、旧バージョンを使用することができなくなりました。詳細は、本ガイドの以下の項を参照してください。 |
|
ロギング |
JBoss EAP 6 には、新しい JBoss Logging フレームワークが導入され、これは JBoss EAP 7 でも使用されています。サードパーティーロギングフレームワークを使用するアプリケーションは、モジュラークラスローディングの変更による影響を受ける場合があります。変更の詳細については、JBoss EAP 6『移行ガイド』の以下の項を参照してください。
JBoss EAP 7 では、 |
|
メッセージングおよび JMS |
JBoss EAP 6 では、デフォルトの JMS 実装として JBoss Messaging が HornetQ に置き換えられました。JBoss EAP 7 では、ビルトインメッセージングプロバイダーとして HornetQ が ActiveMQ Artemis に置き換えられました。 メッセージング設定を移行する場合、JBoss EAP 7 のデフォルトサーバー設定から始め、以下のガイドを使用して現在のメッセージング設定の変更を適用することが推奨されます。
JBoss Messaging から HornetQ に移行するために必要な変更を理解するには、JBoss EAP 6『移行ガイド』の以下の項を参照してください。 その後、HornetQ 設定と関連するメッセージングデータの移行方法に関し、本ガイドの以下の情報を確認します。 |
|
ORB |
JBoss EAP 6 では、JacORB 設定は ORB 設定を移行する場合、JBoss EAP 7 のデフォルトサーバー設定から始め、JBoss EAP 7.1 設定ガイド の以下の項を参照して現在の ORB 設定の変更を適用することが推奨されます。 |
|
リモート呼び出し |
JBoss EAP 6 では、リモート呼び出しのために新しい EJB クライアント API が導入されましたが、新しい API を使用するためにアプリケーションコードを書き直したくない場合は、既存のコードを編集して EJB へのリモートアクセスに JBoss EAP 7 では、デフォルトのコネクターとデフォルトのリモート接続ポートが変更になりました。詳細は、本ガイドの以下の項を参照してください。 |
|
Seam 2.x |
JBoss EAP 6 では、Seam 2.2 アプリケーションの正式サポートがなくなりましたが、JSF 1.2 と Hibernate 3 の依存関係を設定して Seam 2.2 アプリケーションを実行することが可能でした。JSF 2.2 と Hibernate 5 が含まれる JBoss EAP 7 では、Red Hat JBoss Web Framework Kit のライフサイクル終了に伴い Seam 2.2 または Seam 2.3 はサポートされません。Weld CDI bean を使用して Seam コンポーネントを書き直すことが推奨されます。 |
|
セキュリティー |
JBoss EAP 6 のセキュリティー更新には、セキュリティードメイン名の変更および Basic 認証のセキュリティー設定方法の変更が含まれていました。LDAP セキュリティーレルム設定はサーバー設定ファイルに移されました。詳細は、JBoss EAP 6『移行ガイド』の以下の項を参照してください。 JBoss EAP 7 のセキュリティーに影響する更新には、サーバー設定の変更やアプリケーションの変更が含まれます。詳細は、本ガイドの以下の項を参照してください。 |
|
Spring アプリケーション |
Spring 4.2.x は、JBoss EAP 7 によってサポートされる最も初期の安定したバージョンです。Apache CXF Spring web サービスおよび Spring と RESTEasy の統合の変更に関する詳細は、本ガイドの以下の項を参照してください。 |
|
トランザクション |
JBoss EAP 6 では、トランザクション設定が集約され、サーバー設定ファイルに移されました。その他の更新には、JTA ノード識別子の設定や JTS の有効方法の変更が含まれます。詳細は、JBoss EAP『移行ガイド』の以下の項を参照してください。
JBoss EAP 6 の |
|
バルブ |
JBoss EAP 7 では JBoss Web が Undertow に置き換えられ、バルブはサポート対象外となりました。本ガイドの以下の項を参照してください。 |
|
Web サービス |
JBoss EAP 6 には JBossWS 4 が含まれていました。バージョン更新に必要な変更に関する詳細は、JBoss EAP 6『移行ガイド』の以下の項を参照してください。 JBoss EAP 7 には JBossWS 5 が導入されました。必要な更新については、本ガイドの以下の項を参照してください。 |

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.