第8章 JBoss EAP の旧リリースからの移行


8.1. JBoss EAP 5 から JBoss EAP 7 への移行

本ガイドは、JBoss EAP 6 のアプリケーションを JBoss EAP 7 で正常に実行するために必要な変更に重点を置いています。アプリケーションを直接 JBoss EAP 5 から JBoss EAP 7 に移行する計画がある場合、移行の計画や実行に役立つリソースが複数あります。以下を行うことが推奨されます。

  1. 本ガイドの「各リリースに追加された変更の概要」で、JBoss EAP の各リリースに追加された変更の概要を確認します。
  2. JBoss EAP 6 の『移行ガイド』と本ガイドを読み、両方の内容を把握します。
  3. 特定のコンポーネントや機能に関する移行情報のリファレンスとして、JBoss EAP 5 コンポーネントのアップグレードリファレンス を使用します。
  4. ルールベースの Red Hat Application Migration Toolkit は、直接 JBoss EAP 5 から JBoss EAP 7 に移行するのに役立つツールを継続して追加します。これらのツールを使用してアプリケーションを分析し、JBoss EAP 7 への移行に必要な変更に関する詳細なレポートを生成します。詳細は、「Red Hat Application Migration Toolkit を使用した移行のアプリケーションの分析」を参照してください。
  5. カスタマーポータルのナレッジベース では、現在 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 が新しいメッセージングプロバイダーとして含まれています。
  • cmpjaxr、および 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、およびメッセージングプロバイダーが置き換えられ、cmpthreads、および 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 プールサイズはサーバー設定ファイルの ejb3 サブシステムに設定されています。jboss.xml デプロイメント記述子ファイルは jboss-ejb3.xml デプロイメント記述子ファイルに置き換えられます。変更についての詳細は、JBoss EAP 6『Migration Guide』の以下の項を参照してください。

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 はデフォルトでパブリックではなくプライベートネットワークインターフェースを使用するようになり、さらに <channel> 要素が jgroups サブシステムに導入されました。JBoss EAP 7 には Undertow mod_cluster 実装が含まれ、シングルトンサービスの構築に新しい API が導入され、その他にも新しいクラスタリング機能が導入されました。これらの変更は本ガイドの以下の項に記載されています。

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 では、org.jboss.logging パッケージのアノテーションが非推奨となったため、ソースコードおよび Maven GAV (groupId:artifactId:version) に影響します。すべてのログメッセージの接頭辞も変更になりました。変更の詳細は、本ガイドの以下の項を参照してください。

メッセージングおよび 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 設定は EAP_HOME/server/production/conf/jacorb.properties ファイルからサーバー設定ファイルに移されました。JBoss EAP 7 では、JacORB IIOP 実装は OpenJDK ORB のダウンストリームブランチに置き換えられました。

ORB 設定を移行する場合、JBoss EAP 7 のデフォルトサーバー設定から始め、JBoss EAP 7.1 設定ガイド の以下の項を参照して現在の ORB 設定の変更を適用することが推奨されます。

リモート呼び出し

JBoss EAP 6 では、リモート呼び出しのために新しい EJB クライアント API が導入されましたが、新しい API を使用するためにアプリケーションコードを書き直したくない場合は、既存のコードを編集して EJB へのリモートアクセスに ejb:BEAN_REFERENCE を使用することができました。詳細は、JBoss EAP 6『移行ガイド』の以下の項を参照してください。

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 の transactions サブシステムで使用できた一部の Transaction Manager 設定属性が JBoss EAP 7 で変更になりました。詳細は、本ガイドの以下の項を参照してください。

バルブ

JBoss EAP 7 では JBoss Web が Undertow に置き換えられ、バルブはサポート対象外となりました。本ガイドの以下の項を参照してください。

Web サービス

JBoss EAP 6 には JBossWS 4 が含まれていました。バージョン更新に必要な変更に関する詳細は、JBoss EAP 6『移行ガイド』の以下の項を参照してください。

JBoss EAP 7 には JBossWS 5 が導入されました。必要な更新については、本ガイドの以下の項を参照してください。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.