移行ガイド
JBoss Enterprise Application Platform 6 向け
エディッション 2
概要
前書き
1. 表記方法 リンクのコピーリンクがクリップボードにコピーされました!
1.1. 印刷における表記方法 リンクのコピーリンクがクリップボードにコピーされました!
等幅の太字
現在作業中のディレクトリ内のファイルmy_next_bestselling_novelの内容を表示させるには、 シェルプロンプトでcat my_next_bestselling_novelコマンドを入力してから Enter を押してそのコマンドを実行します。
Enter を押してコマンドを実行します。Press Ctrl+Alt+F2 to switch to a virtual terminal.
等幅の太字 で表示します。 例えば、
ファイル関連のクラス群はファイルシステムに対してはfilesystem、 ファイルにはfile、 ディレクトリにはdirをそれぞれ含みます。 各クラスは個別に関連する権限セットを持っています。
メインメニューバーから の順で選択し マウスの個人設定 を起動します。 ボタン タブ内で 左ききのマウス チェックボックスをクリックしてから をクリックしマウスの主要ボタンを左から右に切り替えます (マウスを左ききの人が使用するのに適した設定にする)。To insert a special character into a gedit file, choose → → from the main menu bar. Next, choose → from the Character Map menu bar, type the name of the character in the Search field and click . The character you sought will be highlighted in the Character Table. Double-click this highlighted character to place it in the Text to copy field and then click the button. Now switch back to your document and choose → from the gedit menu bar.
等幅の太字で且つ斜体 または プロポーショナルの太字で且つ斜体
ssh を使用してリモートマシンに接続するには、 シェルプロンプトでssh username@domain.nameと入力します。 リモートマシンがexample.comであり、 そのマシンで使用しているユーザー名が john ならssh john@example.comと入力します。mount -o remount file-systemコマンドは指定したファイルシステムを再マウントします。 例えば、/homeファイルシステムを再マウントするコマンドはmount -o remount /homeになります。現在インストールされているパッケージのバージョンを表示するには、rpm -q packageコマンドを使用します。 結果として次を返してきます、package-version-release。
Publican は DocBook の発行システムです。
1.2. 引用における表記方法 リンクのコピーリンクがクリップボードにコピーされました!
mono-spaced roman (等幅の Roman) にセットされるので以下のように表示されます。
books Desktop documentation drafts mss photos stuff svn books_tests Desktop1 downloads images notes scripts svgs
books Desktop documentation drafts mss photos stuff svn
books_tests Desktop1 downloads images notes scripts svgs
mono-spaced roman (等幅の Roman) でセットされますが、以下のように強調表示されます。
1.3. 注記および警告 リンクのコピーリンクがクリップボードにコピーされました!
注記
重要
警告
第1章 はじめに リンクのコピーリンクがクリップボードにコピーされました!
1.1. 移行ガイドについて リンクのコピーリンクがクリップボードにコピーされました!
第2章 移行の準備 リンクのコピーリンクがクリップボードにコピーされました!
2.1. 移行の準備 リンクのコピーリンクがクリップボードにコピーされました!
JBoss Enterprise Application Platform 6 の新機能と変更内容の確認
本リリースには、JBoss Enterprise Application Platform 5 のアプリケーションのデプロイメントに影響する可能性がある変更が複数あります。これには、ファイルディレクトリ構造、スクリプト、デプロイメント設定、クラスローディング、JNDI ルックアップなどの変更が含まれます。詳細は 「JBoss Enterprise Application Platform 6 の新機能と変更内容」 を参照してください。スタートガイドの確認
JBoss Enterprise Application Platform 6 の 開発ガイドに記載されている、アプリケーション開発の開始に関する章を読むようにしてください。この章には以下に関する重要な情報が含まれています。- Java EE 6
- 新しいモジュラークラスローディングシステム
- ファイル構造の変更
- JBoss Enterprise Application Platform 6 のダウンロードおよびインストール方法
- JBoss Developer Studio のダウンロードおよびインストール方法
- 開発環境に対応する Maven の設定方法
- 製品に同梱されるクイックスタートサンプルアプリケーションのダウンロードおよび実行方法
アプリケーションの分析および理解
アプリケーションはそれぞれ異なるため、移行を開始する前に既存アプリケーションのコンポーネントやアーキテクチャーについて十分に理解する必要があります。
重要
2.2. JBoss Enterprise Application Platform 6 の新機能と変更内容 リンクのコピーリンクがクリップボードにコピーされました!
JBoss Enterprise Application Platform 6 が以前のリリースと顕著に異なる点は次の通りです。
- モジュールベースのクラスローディング
- JBoss Enterprise Application Platform 5 ではクラスローディングのアーキテクチャーは階層的でした。JBoss Enterprise Application Platform 6 ではクラスローディングが JBoss モジュールベースとなりました。これにより、正確にアプリケーションを分離できるようになったため、サーバー実装クラスを隠し、アプリケーションが必要なクラスのみをロードできるようになりました。より良いパフォーマンスを実現するため、クラスローディングは平行して実行されます。JBoss Enterprise Application Platform 5 向けに書かれたアプリケーションはモジュールの依存関係を指定するため変更する必要があります。場合によってはアーカイブを再パッケージ化する必要があることもあります。詳細は、JBoss Enterprise Application Platform 6 開発ガイドの「アプリケーションの開発」の章に記載されている、クラスローディングおよびモジュールの概要を参照してください。
- ドメイン管理
- JBoss Enterprise Application Platform 6 ではサーバーをスタンドアロンサーバーとして実行したり、管理ドメインで実行することが可能です。管理ドメインではサーバーグループ全体を一度に設定できるため、サーバーのネットワーク全体で設定を同期化することが可能です。これにより前リリース向けに構築されたアプリケーションが影響を受けることはありませんが、複数サーバーへのデプロイメントの管理を簡素化することができます。詳細は、JBoss Enterprise Application Platform 6 開発ガイドの「アプリケーションの開発」の章に記載されている管理ドメインに関する説明を参照してください。
注記
ドメインモードは次の Boss Enterprise 製品ではサポートされていません。- JBoss Portal Platform 6
- デプロイメント設定
- スタンドアロンサーバーと管理ドメイン
- JBoss Enterprise Application Platform 5 ではプロファイルベースのデプロイメント設定を使用し、これらのプロファイルは
EAP_HOME/server/ディレクトリにありました。多くのアプリケーションにはセキュリティーやデータベース、リソースアダプターなどの設定に対する複数の設定ファイルが含まれていました。JBoss Enterprise Application Platform 6 では 1 つのファイルを使用してデプロイメントを設定できるようになりました。このファイルはデプロイメントに使用されるすべてのサービスやサブシステムを設定するために使用されます。スタンドアロンサーバーはEAP_HOME/standalone/configuration/standalone.xmlファイルを使用して設定されます。管理ドメインで実行されているサーバーでは、サーバーはEAP_HOME/domain/configuration/domain.xmlファイルを使用して設定されます。JBoss Enterprise Platform 5 の複数の設定ファイルに含まれる情報は、新しい単一の設定ファイルへ移行する必要があります。 - デプロイメントの順序付け
- JBoss Enterprise Application Platform 6 はデプロイメントに対して高速で平行した初期化を実行するため、パフォーマンスと効率性が向上します。ほとんどの場合でアプリケーションサーバーは自動的に依存関係を事前判断し、最も効率的なデプロイメントストラテジーを選択します。しかし、EAR としてデプロイされた複数のモジュールで構成され、CDI 挿入やリソース参照エントリーの代わりにレガシーの JNDI ルックアップを使用する JBoss Enterprise Application Platform 5 のアプリケーションは、設定の変更が必要になります。
- ディレクトリー構造とスクリプト
- 前述の通り、JBoss Enterprise Application Platform 6 はプロファイルベースのデプロイメント設定を使用しません。そのため、
EAP_HOME/server/ディレクトリは存在しません。スタンドアロンサーバーの設定ファイルはEAP_HOME/standalone/configuration/ディレクトリ、デプロイメントはEAP_HOME/standalone/deployments/ディレクトリにあります。管理ドメインで実行されているサーバーの設定ファイルはEAP_HOME/domain/configuration/ディレクトリ、デプロイメントはEAP_HOME/domain/deployments/ディレクトリにあります。JBoss Enterprise Application Platform 5 では、Linux スクリプトEAP_HOME/bin/run.shまたは Windows スクリプトEAP_HOME/bin/run.batを使用してサーバーを起動しました。JBoss Enterprise Application Platform 6 では、サーバーの起動方法によってサーバー起動スクリプトが異なります。 スタンドアロンサーバーを使用する場合は、Linux スクリプトEAP_HOME/bin/standalone.shまたは Windows スクリプトEAP_HOME/bin/standalone.batを使用します。 管理ドメインを起動する場合は、Linux スクリプトEAP_HOME/bin/domain.shまたは Windows スクリプトEAP_HOME/bin/domain.batを使用します。 - JNDI ルックアップ
- JBoss Enterprise Application Platform 6 は標準化された移植可能な JNDI 名前空間を使用するようになりました。JBoss Enterprise Application Platform 5 向けに書かれた JNDI ルックアップを使用するアプリケーションは、新しい JNDI 名前空間の慣習に従って変更する必要があります。JNDI のネーミング構文についての詳細は 「移植可能な JNDI ネーミング構文」 を参照してください。
第3章 アプリケーションの移行 リンクのコピーリンクがクリップボードにコピーされました!
3.1. ほとんどのアプリケーションで必要な変更 リンクのコピーリンクがクリップボードにコピーされました!
3.1.1. ほとんどのアプリケーションで必要な変更の確認 リンクのコピーリンクがクリップボードにコピーされました!
3.1.2. クラスローディングの変更 リンクのコピーリンクがクリップボードにコピーされました!
3.1.2.1. クラスローディングの変更によるアプリケーションの更新 リンクのコピーリンクがクリップボードにコピーされました!
- 最初に、アプリケーションのパッケージと依存関係を確認します。詳細は 「クラスローディングの変更によるアプリケーション依存関係の更新」を参照してください。
- アプリケーションがロギングを行う場合、正しいモジュールの依存関係を指定する必要があります。手順の詳細は 「ロギング依存関係の編集」 を参照してください。
- モジュラークラスローディングの変更により、EAR または WAR のパッケージ構造を変更する必要がある場合があります。詳細は 「EAR および WAR パッケージの編集」 を参照してください。
3.1.2.2. モジュールの依存関係を理解する リンクのコピーリンクがクリップボードにコピーされました!
モジュールは独自のクラスと、明示的または暗黙的な依存関係を持つモジュールのクラスのみにアクセスすることが可能です。
手順3.1 タスク
暗黙的な依存関係を理解する
サーバー内のデプロイヤーは、javax.apiやsun.jdkなどの一般的に使用されるモジュール依存関係を暗黙的かつ自動的に追加します。これにより、ランタイム時にデプロイメントに対してクラスを可視化でき、開発者が依存関係を明示的に追加する作業が軽減されます。暗黙的な依存関係がいつどのように追加されるかについては、 JBoss Enterprise Application Platform 6 開発ガイドの「クラスローディングとモジュール」の章に記載されている暗黙的なモジュール依存関係の説明を参照してください。明示的な依存関係を理解する
その他のクラスに対してはモジュールを明示的に指定する必要があります。明示的に指定しないと、欠落している依存関係が原因でデプロイメントエラーやランタイムエラーが発生します。依存関係が欠落していると、サーバーログにClassNotFoundExceptionsやNoClassDefFoundErrorsトレースが記録されます。複数のモジュールが同じ JAR をロードしたり、異なるモジュールによってロードされるクラスを拡張するクラスを 1 つのモジュールがロードすると、サーバーログにClassCastExceptionsトレースが記録されます。依存関係を明示的に指定するには、MANIFEST.MFを変更するか、JBoss 固有のデプロイメント記述子ファイルjboss-deployment-structure.xmlを作成します。モジュール依存関係の詳細は、JBoss Enterprise Application Platform 6 開発ガイドに記載されている、クラスローディングとモジュールの概要を参照してください。
3.1.2.3. クラスローディングの変更によるアプリケーション依存関係の更新 リンクのコピーリンクがクリップボードにコピーされました!
JBoss Enterprise Application Platform 6 のクラスローディングは以前のバージョンの JBoss Application Server とは大きく異なっています。JBoss Enterprise Application Platform 6 のクラスローディングは JBoss モジュールプロジェクトが基盤となっています。すべての JAR をフラットなクラスパスにロードする単一の階層的なクラスローダーではなく、各ライブラリが依存するモジュールに対してのみリンクするモジュールとなります。また、Enterprise Application Platform 6 のデプロイメントもモジュールで、クラスの依存関係が明示的に定義されている場合を除き、アプリケーションサーバーの JAR に定義されているクラスへアクセスできません。アプリケーションサーバーによって定義されるモジュール依存関係の一部は自動的に設定されます。例えば、Java EE アプリケーションをデプロイする場合、Java EE API の依存関係は自動的にモジュールに追加されます。自動的に追加される依存関係の完全一覧は、JBoss Enterprise Application Platform 6 開発ガイドの「クラストーディングとモジュール」の章に記載されている暗黙的なモジュール依存関係の説明を参照してください。
アプリケーションを JBoss Enterprise Application Platform 6 に移行する際、モジュラークラスローディングの変更に伴い、以下のタスクを 1 つ以上実行する必要がある場合があります。
3.1.3. 設定ファイルの変更 リンクのコピーリンクがクリップボードにコピーされました!
3.1.3.1. JBoss Enterprise Application Platform 6 のクラスローディングを制御するファイルの作成または変更 リンクのコピーリンクがクリップボードにコピーされました!
モジュラークラスローディングを使用する JBoss Enterprise Application Platform 6 の変更に伴い、依存関係を追加したり自動的な依存関係がロードされないようにするため、1 つ以上のファイルを作成または変更する必要がある場合があります。クラスローディングの優先度については、JBoss Enterprise Application Platform 6 開発ガイドの「クラスローディングとモジュール」の章を参照してください。
- jboss-web.xml
jboss-web.xmlファイルの<class-loading>要素が定義されている場合はこれを削除する必要があります。 JBoss Enterprise Application Platform 5 でこの要素によって引き起こされた動作は、JBoss Enterprise Application Platform 6 ではクラスローディングのデフォルト動作ととなっているため、この要素が必要なくなりました。この要素を削除しないと、サーバーログに ParseError と XMLStreamException が記録されます。これは、コメントアウトされたjboss-web.xmlファイルの<class-loading>要素の例になります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - MANIFEST.MF
- 手作業による編集
- アプリケーションが使用するコンポーネントやモジュールによって異なりますが、このファイルに 1 つ以上の依存関係を追加する必要がある場合があります。依存関係は
DependenciesかClass-Pathエントリのどちらかに追加します。開発者によって編集されたMANIFEST.MFの例は次の通りです。Manifest-Version: 1.0 Dependencies: org.jboss.logmanager Class-Path: OrderManagerEJB.jar
Manifest-Version: 1.0 Dependencies: org.jboss.logmanager Class-Path: OrderManagerEJB.jarCopy to Clipboard Copied! Toggle word wrap Toggle overflow このファイルを編集する時、必ずファイルの最後にニューライン文字があるようにしてください。 - Maven を使用した生成
- Maven を使用する場合、
pom.xmlファイルを編集してMANIFEST.MFファイルの依存関係を生成する必要があります。アプリケーションによって EJB 3.0 が使用される場合、pom.xmlファイルに次のようなセクションが含まれることがあります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow EJB 3.0 コードがorg.apache.commons.logを使用する場合、MANIFEST.MFファイルにこの依存関係が存在しなければなりません。この依存関係を生成するには、次のように<plugin>要素をpom.xmlファイルに追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 上記の例では、次の依存関係エントリのみがsrc/main/resourcres/MANIFEST.MFファイルに含まれる必要があります。Dependencies: org.apache.commons.logging
Dependencies: org.apache.commons.loggingCopy to Clipboard Copied! Toggle word wrap Toggle overflow Maven は完全なMANIFEST.MFファイルを生成します。Manifest-Version: 1.0 Dependencies: org.apache.commons.logging
Manifest-Version: 1.0 Dependencies: org.apache.commons.loggingCopy to Clipboard Copied! Toggle word wrap Toggle overflow
- jboss-deployment-structure.xml
- このファイルは、クラスローディングを細かく制御するために使用される JBoss 固有のデプロイメント記述子です。
MANIFEST.MFと同様に、このファイルを使用して依存関係を追加することが可能です。また、自動的な依存関係が追加されないようにしたり、追加のモジュールを定義することが可能で、EAR デプロイメントの分離されたクラスローディング動作を変更したり、追加のリソースルートをモジュールへ追加することもできます。JSF 1.2 モジュールの依存関係を追加し、JSF 2.0 モジュールが自動的にローディングされないようにするjboss-deployment-structure.xmlファイルの例は次の通りです。Copy to Clipboard Copied! Toggle word wrap Toggle overflow このファイルに関する詳細は 「Jboss-deployment-structure.xml」 を参照してください。 - application.xml
- 以前のバージョンの JBoss Enterprise Application Platform では、
jboss-app.xmlファイルを使用して EAR 内でデプロイメントの順番を制御しました。本バージョンより Java EE6 仕様がapplication.xmlに<initialize-in-order>要素を提供するようになり、これにより EAR 内の Java EE モジュールがデプロイされる順番を制御することができます。ほとんどの場合、デプロイメントの順番を指定する必要はありません。依存関係の挿入と、外部モジュールのコンポーネントを参照する resource-refs がアプリケーションによって使用される場合、アプリケーションサーバーは適切で最適なコンポーネントの順番を暗黙的に決定できるため、ほとんどの場合で<initialize-in-order>要素は必要ありません。myApp.ear内にmyBeans.jarとmyApp.warを持つアプリケーションがあるとしましょう。myApp.war@EJBのサーブレットがmyBeans.jarより Bean を挿入します。この場合、必ずサーブレットが起動する前に EJB コンポーネントを使用できるようにし、<initialize-in-order>要素を使用する必要がないことをアプリケーションサーバーが適切に認識します。しかし、次のようなレガシーの JNDI ルックアップスタイルのリモート参照を使用し、Bean へアクセスする場合はモジュールの順番を指定する必要がある場合があります。この場合、EJB コンポーネントがinit() { Context ctx = new InitialContext(); ctx.lookup("TheBeanInMyBeansModule"); }init() { Context ctx = new InitialContext(); ctx.lookup("TheBeanInMyBeansModule"); }Copy to Clipboard Copied! Toggle word wrap Toggle overflow myBeans.jarにあることをサーバーが判断できないため、myBeans.jarのコンポーネントがmyApp.warのコンポーネントの前に初期化され開始されるよう強制する必要があります。これには、<initialize-in-order>要素をtrueに設定し、myBeans.jarモジュールとmyApp.warモジュールの順番をapplication.xmlファイルに指定します。以下は<initialize-in-order>要素を使用してデプロイメントの順番を制御する例になります。myBeans.jarはmyApp.warファイルの前にデプロイされます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow application.xmlファイルのスキーマは http://java.sun.com/xml/ns/javaee/application_6.xsd を参照してください。注記
<initialize-in-order>要素をtrueに設定するとデプロイメントの速度が遅くなることに注意してください。デプロイメントを最適化するためのコンテナの柔軟性が高いため、依存関係の挿入や resource-refs を使用して適切な依存関係を定義する方法が推奨されます。 - jboss-ejb3.xml
- Java Enterprise Edition (EE) によって定義される
ejb3-jar.xmlデプロイメント記述子によって提供される機能を上書きしたり追加するため、jboss.xmlはjboss-ejb3.xmlデプロイメント記述子に置き換えられました。この新ファイルはjboss.xmlとの互換性がないため、jboss.xmlはデプロイメントで無視されます。 - login-config.xml
login-config.xmlファイルはセキュリティー設定で使用されないようになりました。セキュリティーはサーバー設定ファイルの<security-domain>要素に設定されるようになりました。スタンドアロンサーバーではstandalone/configuration/standalone.xmlファイルになります。管理ドメインでサーバーを実行している場合はdomain/configuration/domain.xmlファイルになります。
3.1.3.2. Jboss-deployment-structure.xml リンクのコピーリンクがクリップボードにコピーされました!
EAP_HOME/docs/schema/jboss-deployment-structure-1_0.xsd にあります。
3.1.3.3. 新しいモジュラークラスローディングシステムのパッケージリソース リンクのコピーリンクがクリップボードにコピーされました!
以前のバージョンの Enterprise Application Platform では、WEB-INF/ ディレクトリ内のすべてのリソースが WAR クラスパスに追加されました。JBoss Enterprise Application Platform 6 では、Web アプリケーションのアーティファクトは WEB-INF/classes および WEB-INF/lib ディレクトリからのみロードされます。指定の場所でアプリケーションアーティファクトのパッケージ化に失敗した場合、ClassNotFoundException や NoClassDefError などのランタイムエラーが発生します。
- リソースパッケージの編集
- アプリケーションのみがリソースを使用できるようにするには、プロパティーファイル、JAR、およびその他のアーティファクトを
WEB-INF/classes/またはWEB-INF/lib/ディレクトリへ移動し、WAR とバンドルします。この方法の詳細は 「ResourceBundle プロパティーの場所変更」 を参照してください。 - カスタムモジュールの作成
- Enterprise Application Platform サーバー上で実行されているすべてのアプリケーションが、カスタムリソースを使用できるようにするには、カスタムモジュールを作成する必要があります。この方法の詳細は 「カスタムモジュールの作成」 を参照してください。
3.1.3.4. ResourceBundle プロパティーの場所変更 リンクのコピーリンクがクリップボードにコピーされました!
以前のバージョンの JBoss Enterprise Application Platform では、EAP_HOME/server/SERVER_NAME/conf/ ディレクトリはクラスパスに存在し、アプリケーションによる使用が可能でした。このプロパティーを JBoss Enterprise Application Platform 6 のアプリケーションのクラスパスで使用できるようにするには、アプリケーション内でパッケージ化する必要があります。
手順3.2
- WAR アーカイブをデプロイする場合、これらのプロパティーを WAR の
WEB-INF/classes/フォルダーでパッケージ化する必要があります。 - これらのプロパティーを EAR のすべてのコンポーネントに対してアクセス可能にするには、JAR のルートでパッケージ化し、EAR の
lib/フォルダーに置く必要があります。
3.1.3.5. カスタムモジュールの作成 リンクのコピーリンクがクリップボードにコピーされました!
手順3.3 カスタムモジュールの作成
module/ディレクトリ構造を作成し、ファイルを追加します。EAP_HOME/moduleディレクトリ下にディレクトリ構造を作成し、ファイルや JAR が含まれるようにします。例は次の通りです。cd EAP_HOME/modules/ $ mkdir -p myorg-conf/main/properties
$ cd EAP_HOME/modules/ $ mkdir -p myorg-conf/main/propertiesCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 作成した
EAP_HOME/modules/myorg-conf/main/properties/ディレクトリにプロパティーファイルを移動します。 - 次の XML が含まれる
module.xmlファイルをEAP_HOME/modules/myorg-conf/main/ディレクトリに作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- サーバー設定ファイルの
eeサブシステムを編集します。JBoss CLI を使用するか、手作業でファイルを編集します。- 次の手順に従って JBoss CLI を使用し、サーバー設定ファイルを編集します。
- サーバーを起動し、管理 CLI へ接続します。
- Linux の場合は、コマンドラインで以下を入力します。
EAP_HOME/bin/jboss-cli.sh --connect Connected to standalone controller at localhost:9999
$ EAP_HOME/bin/jboss-cli.sh --connect $ Connected to standalone controller at localhost:9999Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Windows の場合は、コマンドラインで以下を入力します。
C:\>EAP_HOME\bin\jboss-cli.bat --connect Connected to standalone controller at localhost:9999
C:\>EAP_HOME\bin\jboss-cli.bat --connect C:\> Connected to standalone controller at localhost:9999Copy to Clipboard Copied! Toggle word wrap Toggle overflow
eeサブシステムにmyorg-conf<global-modules> 要素を作成するには、コマンドラインで以下を入力します。/subsystem=ee:write-attribute(name=global-modules, value=[{"name"=>"myorg-conf","slot"=>"main"}])/subsystem=ee:write-attribute(name=global-modules, value=[{"name"=>"myorg-conf","slot"=>"main"}])Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の結果が表示されるはずです。{"outcome" => "success"}{"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- サーバー設定ファイルを手作業で編集したい場合は、次の手順に従ってください。
- サーバーを停止し、テキストエディターでサーバー設定ファイルを開きます。スタンドアロンサーバーを実行している場合は、
EAP_HOME/standalone/configuration/standalone.xmlファイルになります。管理ドメインを実行している場合は、EAP_HOME/domain/configuration/domain.xmlファイルになります。 eeサブシステムを見つけ、myorg-confのグローバルモジュールを追加します。以下は、myorg-conf要素が含まれるように編集されたeeサブシステム要素の例になります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
my.propertiesという名前のファイルを正しいモジュールの場所にコピーしたとします。すると、以下のようなコードを使用してプロパティーファイルをロードできるようになります。Thread.currentThread().getContextClassLoader().getResource("my.properties");Thread.currentThread().getContextClassLoader().getResource("my.properties");Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.1.4. ロギングの変更 リンクのコピーリンクがクリップボードにコピーされました!
3.1.4.1. ロギング依存関係の編集 リンクのコピーリンクがクリップボードにコピーされました!
JBoss LogManager はすべてのロギングフレームワークのフロントエンドをサポートするため、現在のロギングコードを保持することも、新しい JBoss のロギングインフラストラクチャーへ移行することも可能です。モジュラークラスローディングが変更されたため、いずれの場合でもアプリケーションを変更して必要な依存関係を追加する必要があるでしょう。
手順3.4 アプリケーションロギングコードの更新
- 「サードパーティーロギングフレームワークのアプリケーションコードの更新」 に従ってアプリケーションコードを更新します。
- 「新しい JBoss ロギングフレームワークを使用したコードの変更」 に従ってコードを編集します。
3.1.4.2. サードパーティーロギングフレームワークのアプリケーションコードの更新 リンクのコピーリンクがクリップボードにコピーされました!
JBoss Enterprise Application Platform 6 では Apache Commons Logging、Apache log4j、SLF4J、Java Logging などの一般的なサードパーティーフレームワークのロギング依存関係はデフォルトで追加されています。しかし、log4j を使用し、ロギングサブシステムを使用してハンドラー (アペンダー) を設定したくない場合は Enterprise Application Platform の log4j モジュールを除外する必要があります。
手順3.5 log4j.properties または log4j.xml ファイルを使用するよう Enterprise Application Platform 6 を設定する
- 次の内容が含まれる
jboss-deployment-structure.xmlを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - WAR をデプロイする場合は
jboss-deployment-structure.xmlファイルをWEB-INF/ディレクトリに置きます。EAR をデプロイする場合はjboss-deployment-structure.xmlファイルをMETA-INF/ディレクトリに置きます。 - デプロイメントの
lib/ディレクトリにlog4j.propertiesまたはlog4j.xmlファイルが含まれるようにします。 - アプリケーションをデプロイします。
注記
3.1.4.3. 新しい JBoss ロギングフレームワークを使用したコードの変更 リンクのコピーリンクがクリップボードにコピーされました!
新しいフレームワークを使用するには、次のようにインポートとコードを変更します。
手順3.6 タスク
インポートとロギングコードの変更
新しい JBoss ロギングフレームワークを使用するコードの例は次の通りです。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ロギング依存関係の追加
JBoss ロギングクラスが含まれる JAR はorg.jboss.loggingという名前のモジュールにあります。MANIFEST-MFファイルは次のようになるはずです。Manifest-Version: 1.0 Dependencies: org.jboss.logging
Manifest-Version: 1.0 Dependencies: org.jboss.loggingCopy to Clipboard Copied! Toggle word wrap Toggle overflow モジュール依存関係の検索方法に関する詳細は 「クラスローディングの変更によるアプリケーション依存関係の更新」 と 「移行の問題のデバッグと解決」 を参照してください。
3.1.5. アプリケーションパッケージの変更 リンクのコピーリンクがクリップボードにコピーされました!
3.1.5.1. EAR および WAR パッケージの編集 リンクのコピーリンクがクリップボードにコピーされました!
アプリケーションを移行する際、モジュラークラスローディングの変更に伴い、EAR または WAR のパッケージ構造を変更する必要がある場合があります。モジュール依存関係は次の順序でロードされます。
- システム依存関係
- ユーザー依存関係
- ローカルリソース
- デプロイメント間の依存性
手順3.7 アーカイブパッケージの編集
WAR のパッケージ化
WAR は単一のモジュールで、WAR のすべてのクラスは同じクラスローダーでロードされます。そのためWEB-INF/lib/ディレクトリにパッケージされるクラスは、WEB-INF/classesディレクトリのクラスと同様に処理されます。EAR のパッケージ化
EAR は複数のモジュールによって構成されます。EAR/lib/ディレクトリは単一のモジュールで、EAR 内の各 WAR や EJB jar サブデプロイメントは個別のモジュールになります。依存関係が明示的に定義された場合を除き、クラスは EAR 内の他のモジュールにあるクラスへアクセスすることはできません。サブデプロイメントは常に親モジュール上で自動的な依存関係を持ち、親モジュールはEAR/lib/ディレクトリのクラスへのアクセスを許可します。しかし、サブデプロイメントはお互いのアクセスを許可するため常に自動的な依存関係を持っているわけではありません。この挙動は次のようにeeサブシステム設定の<ear-subdeployments-isolated>要素を設定すると制御することができます。<subsystem xmlns="urn:jboss:domain:ee:1.0" > <ear-subdeployments-isolated>false</ear-subdeployments-isolated> </subsystem></subsystem>
<subsystem xmlns="urn:jboss:domain:ee:1.0" > <ear-subdeployments-isolated>false</ear-subdeployments-isolated> </subsystem></subsystem>Copy to Clipboard Copied! Toggle word wrap Toggle overflow デフォルトでは false に設定され、EAR 内の他のサブデプロイメント属するクラスがサブデプロイメントに対して可視化されます。クラスローディングについての詳細は、JBoss Enterprise Application Platform 6 開発ガイドの「クラスローディングとモジュール」の章を参照してください。
3.1.6. データソースおよびリソースアダプター設定の変更 リンクのコピーリンクがクリップボードにコピーされました!
3.1.6.1. 設定変更によるアプリケーションの更新 リンクのコピーリンクがクリップボードにコピーされました!
- アプリケーションがデータソースを使用する場合は 「DataSource 設定の更新」を参照してください。
- アプリケーションが JPA を使用し、現在 Hibernate JAR をバンドルする場合は、 「Hibernate または JPA に対するデータソースの設定」を参照し、移行のオプションについて確認してください。
- アプリケーションがリソースアダプターを使用する場合は、 「リソースアダプター設定の更新」を参照してください。
- 「アプリケーションセキュリティーの変更設定」 を参照し、基本的なセキュリティーの設定変更方法について確認してください。
3.1.6.2. DataSource 設定の更新 リンクのコピーリンクがクリップボードにコピーされました!
以前のバージョンの JBoss Enterprise Application Platform では、ファイル名の最後に *-ds.xml が付くファイルに JCA データソースの設定が定義されていました。このファイルはサーバーの deploy/ ディレクトリにデプロイされるか、アプリケーションによってパッケージ化されました。JDBC ドライバーは server/lib/ ディレクトリにコピーされるか、アプリケーションの WEB-INF/lib/ ディレクトリにパッケージ化されました。この設定方法は開発環境では今でもサポートされていますが、JBoss の管理ツールではサポートされていないため実稼働環境では推奨されません。
domain/configuration/domain.xml ファイルに設定されます。Enterprise Application Platform インスタンスがスタンドアロンサーバーとして実行されている場合、データソースは standalone/configuration/standalone.xml ファイルに設定されます。このように設定されたデータソースは、Web 管理コンソールやコマンドラインインターフェース (CLI) などが含まれる JBoss 管理インターフェースを使用して管理および制御されます。これらのツールはデプロイメントの管理や、管理ドメインで実行されている複数のサーバーの設定を容易にします。
JDBC 4.0 対応のドライバーはデプロイメントまたはコアモジュールとしてインストールすることができます。JDBC 4.0 対応のドライバーには、ドライバークラス名を指定する META-INF/services/java.sql.Driver ファイルが含まれています。JDBC 4.0 対応でないドライバーには追加の設定が必要となります。ドライバーを JDBC 4.0 対応にする方法や、現在のデータソース設定を Web 管理コンソールや CLI によって管理可能な設定に更新する方法の詳細については 「JDBC ドライバーのインストールと設定」 を参照してください。
「IronJacamar ツールを使用してデータソースとリソースアダプターの設定を移行する」 の通り、IronJacamar ツールを使用してデータソースやリソースアダプター設定を移行することが可能です。このツールは *-ds.xml スタイルの設定ファイルを JBoss Enterprise Application Platform 6 が想定する形式に変換します。
3.1.6.3. JDBC ドライバーのインストールと設定 リンクのコピーリンクがクリップボードにコピーされました!
次の 2 つの方法の 1 つを用いて JDBC ドライバーをコンテナにインストールすることができます。
- デプロイメントとしてのインストール
- コアモジュールとしてのインストール
domain/configuration/domain.xml ファイルに設定されます。Enterprise Application Platform インスタンスがスタンドアロンサーバーとして実行されている場合、データソースは standalone/configuration/standalone.xml ファイルに設定されます。両モードで同じであるスキーマ参照情報は JBoss Enterprise Application Platform 6 インストールの doc/ ディレクトリにあります。ここでは説明上、サーバーがスタンドアロンサーバーとして稼働し、データソースが standalone.xml ファイルに設定されていると仮定します。
手順3.8 JDBC ドライバーのインストールと設定
JDBC ドライバーのインストール
JDBC ドライバーのデプロイメントとしてのインストール
これはドライバーのインストールに推奨される方法です。JDBC ドライバーがデプロイメントとしてインストールされると、普通の JAR としてデプロイされます。JBoss Enterprise Application Platform インスタンスがスタンドアロンサーバーとして実行されている場合は、 JDBC 4.0 対応の JAR をEAP_HOME/standalone/deployments/ディレクトリへコピーします。サーバーが管理ドメインとして実行されている場合は、JAR をEAP_HOME/domain/deployments/ディレクトリへコピーします。スタンドアロンサーバーにデプロイメントとしてインストールされた MySQL JDBC ドライバーの例は次の通りです。$cp mysql-connector-java-5.1.15.jar EAP_HOME/standalone/deployments/
$cp mysql-connector-java-5.1.15.jar EAP_HOME/standalone/deployments/Copy to Clipboard Copied! Toggle word wrap Toggle overflow JDBC 4.0 対応のドライバーは自動的に認識され、名前とバージョンによってシステムへインストールされます。JDBC 4.0 対応の JAR にはドライバーのクラス名を指定するMETA-INF/services/java.sql.Driverという名前のテキストファイルが含まれてます。ドライバーが 4.0 対応でない場合は、次の方法の 1 つを用いてデプロイ可能にすることができます。java.sql.Driverファイルを作成し、META-INF/services/パス下の JAR に追加します。次の例のように、このファイルにはドライバークラス名が含まれていなければなりません。com.mysql.jdbc.Driver
com.mysql.jdbc.DriverCopy to Clipboard Copied! Toggle word wrap Toggle overflow java.sql.Driverファイルをデプロイメントディレクトリに作成します。スタンドアロンサーバーとして実行されている JBoss Enterprise Application Platform 6 のインスタンスの場合、このファイルをEAP_HOME/standalone/deployments/META-INF/services/java.sql.Driverに置く必要があります。サーバーが管理ドメインで実行されている場合、EAP_HOME/domain/deployments/META-INF/services/java.sql.Driverに置く必要があります。
この方法の利点は次の通りです。この方法の難点は次の通りです。- モジュールを定義する必要がないため、最も簡単な方法になります。
- サーバーが管理ドメインで実行されている場合、この方法を使用するデプロイメントは自動的にドメインの全サーバーへ伝播されます。そのため、管理者が手作業で ドライバー JAR を配布する必要がありません。
- ドライバーと依存ライセンス JAR を持つ JARなど、JDBC ドライバーが複数の JAR で構成されている場合、ドライバーをデプロイメントとしてインストールすることができません。この場合、JDBC ドライバーをコアモジュールとしてインストールする必要があります。
- ドライバーが JDBC 4.0 対応でない場合、ドライバークラス名が含まれるファイルを作成して JAR へインポートするか、
deployments/ディレクトリにオーバーレイする必要があります。
コアモジュールとしての JDBC ドライバーのインストール
EAP_HOME/modules/ディレクトリ下にファイルパス構造を作成します。この構造にはドライバー JAR とモジュールを定義するmodule.xmlファイルが含まれます。例えば、前述の MySQL JDBC ドライバーを使用して次のようなディレクトリ構造を作成します。EAP_HOME/modules/com/mysql/main/main/サブディレクトリに次のmodule.xmlファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow モジュール名「com.mysql」はこのモジュールのディレクトリ構造と一致します。<dependencies>要素は、このモジュールの他のモジュールへの依存関係を指定するために使用されます。この場合、全 JDBC データソースの場合と同様に、javax.apiという名前の他のモジュールによって定義される Java JDBC API に依存します。このモジュールはmodules/javax/api/main/ディレクトリに存在します。注記
module.xmlファイルの最初に空白文字が存在しないようにしてください。空白文字が存在すると、このドライバーに対して 「New missing/unsatisfied dependencies」エラーが発生します。- MySQL JDBC ドライバー JAR を
EAP_HOME/modules/com/mysql/main/ディレクトリへコピーします。$cp mysql-connector-java-5.1.15.jar EAP_HOME/modules/com/mysql/main/
$cp mysql-connector-java-5.1.15.jar EAP_HOME/modules/com/mysql/main/Copy to Clipboard Copied! Toggle word wrap Toggle overflow
この方法の利点は次の通りです。この方法の難点は次の通りです。- JDBC ドライバーが複数の JAR で構成される場合に唯一使用できる方法です。
- この方法では、ドライバー JAR を変更したりファイルオーバーレイを作成せずに、JDBC 4.0 対応でないドライバーをインストールすることができます。
- モジュールの設定が難しくなります。
- 管理ドメインで実行されている各サーバーへモジュールを手作業でコピーする必要があります。
データソースの設定
データベースドライバーの追加
<driver>要素を同じファイルの<drivers>要素に追加します。以前*-ds.xmlファイルに定義されたデータソース情報と同じ情報が一部含まれます。最初にドライバー JAR が JDBC 4.0 対応であるか判断します。JDBC 4.0 対応の JAR にはドライバークラス名を指定するMETA-INF/services/java.sql.Driverファイルが含まれています。サーバーはこのファイルを使用して JAR のドライバークラス名を探します。JDBC 4.0 対応の ドライバーの JAR には既に<driver-class>要素が指定されているため、この要素は必要ありません。JDBC 4.0 対応 MySQL ドライバーのドライバー要素の例は次の通りです。JDBC 4.0 対応でないドライバーにはドライバークラス名を指定する<driver name="mysql-connector-java-5.1.15.jar" module="com.mysql"/>
<driver name="mysql-connector-java-5.1.15.jar" module="com.mysql"/>Copy to Clipboard Copied! Toggle word wrap Toggle overflow META-INF/services/java.sql.Driverがないため、ドライバークラスを識別するために<driver-class>が必要となります。JDBC 4.0 に対応していないドライバーのドライバー要素の例は次の通りです。<driver name="mysql-connector-java-5.1.15.jar" module="com.mysql"> <driver-class>com.mysql.jdbc.Driver</driver-class></driver>
<driver name="mysql-connector-java-5.1.15.jar" module="com.mysql"> <driver-class>com.mysql.jdbc.Driver</driver-class></driver>Copy to Clipboard Copied! Toggle word wrap Toggle overflow データソースの作成
standalone.xmlファイルの<datasources>セクションに<datasource>要素を作成します。このファイルには、以前*-ds.xmlに定義されたデータソース情報と同じ情報の多くが含まれています。standalone.xmlファイルの MySQL データソース要素の例は次の通りです。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.1.6.4. Hibernate または JPA に対するデータソースの設定 リンクのコピーリンクがクリップボードにコピーされました!
アプリケーションが JPA を使用し、現在 Hibernate JAR をバンドルする場合、JBoss Enterprise Application Platform 6 に含まれる Hibernate を使用した方がよい場合があります。このバージョンの Hibernate を使用するには、アプリケーションより古いバージョンの Hibernate バンドルを削除する必要があります。
手順3.9 Hibernate バンドルの削除
- アプリケーションライブラリーフォルダーより Hibernate JAR を削除します。
persistence.xmlファイルの<hibernate.transaction.manager_lookup_class>要素は必要がないため、削除またはコメントアウトします。
3.1.6.5. リソースアダプター設定の更新 リンクのコピーリンクがクリップボードにコピーされました!
以前のバージョンのアプリケーションサーバーでは、リソースアダプター設定は、ファイル名の最後に *-ds.xml が付くファイルで定義されました。JBoss Enterprise Application Platform 6 ではリソースアダプターはサーバー設定ファイルで設定されます。管理ドメインで実行されている場合、設定ファイルは EAP_HOME/domain/configuration/domain.xml ファイルになります。スタンドアロンサーバーとして実行されている場合、EAP_HOME/standalone/configuration/standalone.xml ファイルのリソースアダプターを設定します。Resource adapter descriptors のスキーマ参照情報は両モード共通です。
リソースアダプター記述子の情報は、サーバー設定ファイルの次のサブシステム要素下に定義されます。
<subsystem xmlns="urn:jboss:domain:resource-adapters:1.0"/>
<subsystem xmlns="urn:jboss:domain:resource-adapters:1.0"/>
*-ds.xml ファイルに定義された情報と同じものの一部を使用します。
3.1.7. セキュリティーの変更 リンクのコピーリンクがクリップボードにコピーされました!
3.1.7.1. アプリケーションセキュリティーの変更設定 リンクのコピーリンクがクリップボードにコピーされました!
UsersRolesLoginModule は常にクラスパスのプロパティーファイルを検索しました。以前のバージョンのJBoss Enterprise Application Platform では、EAP_HOME/server/SERVER_NAME/conf/ ディレクトリに置かれたプロパティーファイルはクラスパス上にあり、UsersRolesLoginModule によって簡単に見つかりました。JBoss Enterprise Application Platform 6 ではディレクトリ構造が変更になりました。プロパティーファイルをアプリケーション内でパッケージ化し、クラスパスで使用できるようにする必要があります。
security-domains 下の新しいセキュリティードメインを standalone/configuration/standalone.xml または domain/configuration/domain.xml サーバー設定ファイルに追加します。
${jboss.server.config.dir} は EAP_HOME/standalone/configuration/ ディレクトリを参照します。インスタンスが管理ドメインで実行されている場合、 ${jboss.server.config.dir} は EAP_HOME/domain/configuration/ ディレクトリを参照します。
JBoss Enterprise Application Platform 6 では、セキュリティードメインの名前の最初に java:/jaas/ が付かないようになりました。
- Web アプリケーションでは
jboss-web.xmlのセキュリティー設定よりこのプレフィックスを削除する必要があります。 - エンタープライズアプリケーションでは、
jboss-ejb3.xmlファイルのセキュリティードメイン設定よりこのプレフィックスを削除する必要があります。JBoss Enterprise Application Platform 6 ではjboss.xmlはこのファイルに置き換えられました。
3.1.8. JNDI の変更 リンクのコピーリンクがクリップボードにコピーされました!
3.1.8.1. アプリケーションの JNDI 名前空間名の更新 リンクのコピーリンクがクリップボードにコピーされました!
EJB 3.1 は標準化されたグローバル JNDI 名前空間や、Java EE アプリケーションの様々なスコープへマップする複数の関連名前空間を導入しました。移植可能な EE アプリケーションに使用される JNDI 名前空間は java:global、 java:module、 java:app の 3 つです。JNDI ルックアップを使用するアプリケーションを変更し、新しい標準 JNDI 名前空間の慣例に従うようにする必要があります。
手順3.10 JNDI ルックアップの変更
- 「移植可能な JNDI ネーミング構文」 について学ぶ
以前のリリースにおける JNDI 名前空間の例や、 JBoss Enterprise Application Platform 6 で指定する方法については 「以前のリリースにおける JNDI 名前空間の例、また JBoss Enterprise Application Platform 6 での名前空間の指定方法」 を参照してください。
3.1.8.2. 移植可能な JNDI ネーミング構文 リンクのコピーリンクがクリップボードにコピーされました!
論理的な名前空間は 4 つあり、それぞれ独自のスコープを持っています。このうち 3 つは移植可能な JNDI ルックアップに利用されます。以下の表は各名前空間をいつどのように使用するかを説明しています。
| JNDI 名前空間 | 詳細 |
|---|---|
| java:global |
この名前空間の名前はアプリケーションサーバーインスタンス内にデプロイされている全アプリケーションで共有されます。この名前空間の名前を使いリモートの EJB を検索します。
以下は java:global 名前空間の例になります。
java:global/jboss-seam-booking/jboss-seam-booking.jar/HotelBookingAction
|
| java:module |
この名前空間の名前は、1 つの EJB モジュールにある全エンタープライズ Bean や Web モジュールにある全コンポーネントなど、モジュール内の全コンポーネントで共有されます。
java:module 名前空間の例は次の通りです。
java:module/HotelBookingAction!org.jboss.seam.example.booking.HotelBooking
|
| java:app |
この名前空間の名前は、1つのアプリケーション内にある全モジュールのコンポーネントすべてで共有されます。例えば、同じ EAR ファイルにある WAR や EJB jar ファイルは java:app namespace のリソースにアクセスできます。
以下は java:app 名前空間の例になります。
java:app/jboss-seam-booking.jar/HotelBookingAction
|
3.1.8.3. JNDI 名前空間のルールの確認 リンクのコピーリンクがクリップボードにコピーされました!
JBoss Enterprise Application Platform 6 では JNDI 名前空間の名前が改良され、アプリケーションにバインドされた名前に対して一貫した予測可能なルールを提供するだけでなく、将来的に互換性の問題が起こらないよう対処されます。そのため、現在の名前空間が新しいルールに準拠しない場合、問題が発生することがあります。
DefaultDSやjdbc/DefaultDSのような修飾されていない相対名は、コンテキストに応じてjava:comp/envやjava:module/env、java:jboss/envのいずれかに相対的に修飾されなければなりません。/jdbc/DefaultDSなどの修飾されていないabsolute名はjava:jboss/root名に相対的に修飾されなければなりません。java:/jdbc/DefaultDSなどの修飾されたabsolute名は、前述の修飾されていないabsolute名と同様に修飾されなければなりません。- 特殊な
java:jboss名前空間は AS サーバーインスタンス全体で共有されます。 - プレフィックスが
java:であるrelative名は、comp、module、app、global、 プロプラエタリjbossの 5 つの名前空間の 1 つでなければなりません。 名前がjava:xxxで始まり、xxx が前述の 5 つの名前空間と一致しない場合、無効な名前エラーが発生する原因となります。
3.1.8.4. 新しい JNDI 名前空間ルールに準拠するようアプリケーションを変更する リンクのコピーリンクがクリップボードにコピーされました!
- JBoss Enterprise Application Platform 5.1 の JNDI ルックアップの例は次の通りです。通常、このコードは初期化メソッドに存在します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ルックアップ名はOrderManagerApp/ProductManagerBean/localになります。 - 次の例は、JBoss Enterprise Application Platform 6 では同じルックアップがどのようにコード化されるかを表しています。
@EJB(lookup=“java:app/OrderManagerEJB/ProductManagerBean!services.ejb.ProductManager") private ProductManager productManager;
@EJB(lookup=“java:app/OrderManagerEJB/ProductManagerBean!services.ejb.ProductManager") private ProductManager productManager;Copy to Clipboard Copied! Toggle word wrap Toggle overflow ルックアップ値はメンバー変数として定義され、新しい移植可能なjava:appJNDI 名前空間名であるjava:app/OrderManagerEJB/ProductManagerBean!services.ejb.ProductManagerが使用されます。
3.1.8.5. 以前のリリースにおける JNDI 名前空間の例、また JBoss Enterprise Application Platform 6 での名前空間の指定方法 リンクのコピーリンクがクリップボードにコピーされました!
| JBoss Enterprise Application Platform 5.x の名前空間 | JBoss Enterprise Application Platform 6 の名前空間 | 追加コメント |
|---|---|---|
| OrderManagerApp/ProductManagerBean/local | java:module/ProductManagerBean!services.ejb.ProductManager | EE6 標準のバインディング、同じモジュール内でのみアクセス可能 |
| OrderManagerApp/ProductManagerBean/local | java:app/OrderManagerEJB/ProductManagerBean!services.ejb.ProductManager | EE6 標準のバインディング、同じアプリケーション内でのみアクセス可能 |
| OrderManagerApp/ProductManagerBean/local | java:global/OrderManagerApp/OrderManagerEJB/ProductManagerBean!services.ejb.ProductManager | EE6 標準のバインディング、グローバルにアクセス可能 |
| java:comp/UserTransaction | java:comp/UserTransaction | アプリケーションが直接作成するスレッドなど、EE 以外のスレッド対してアクセス可能 |
| java:comp/UserTransaction | java:jboss/UserTransaction | グローバルにアクセス可能。java:comp/UserTransaction を利用できない場合に使用。 |
| java:/TransactionManager | java:jboss/TransactionManager | |
| java:/TransactionSynchronizationRegistry | java:jboss/TransactionSynchronizationRegistry |
3.2. アプリケーションのアーキテクチャーやコンポーネントによって異なる変更 リンクのコピーリンクがクリップボードにコピーされました!
3.2.1. アプリケーションのアーキテクチャーやコンポーネントによって異なる変更の確認 リンクのコピーリンクがクリップボードにコピーされました!
- Hibernate と JPA
- アプリケーションが Hibernate または JPA を使用する場合、アプリケーションを変更する必要があります。
- REST
- アプリケーションが JAX-RS を使用する場合、JBoss Enterprise Application Platform 6 は自動的に RESTEasy を設定するため、手作業で設定する必要がなくなりました。詳細は 「JAX-RS および RESTEasy の変更の設定」 を参照してください。
- LDAP
- JBoss Enterprise Application Platform 6 では LDAP セキュリティーレルムの設定が異なります。アプリケーションが LDAP を使用する場合、 「LDAP セキュリティーレルムの変更設定」 で詳細を確認してください。
- メッセージング
- JBoss Messaging は JBoss Enterprise Application Platform 6 から除外されました。アプリケーションがメッセージングプロバイダーとして JBoss Messaging を使用する場合、 JBoss Messaging コードを HornetQ に置き換える必要があります。詳細は 「HornetQ を JMS プロバイダーとして使用するためにアプリケーションを移行」 を参照してください。
- クラスタリング
- JBoss Enterprise Application Platform 6 ではクラスタリングを有効にする方法が変更になりました。詳細は 「クラスタリングに対するアプリケーションの変更」を参照してください。
- サービススタイルのデプロイメント
- JBoss Enterprise Application Platform 6 はサービススタイル記述子を使用しないようになりましたが、できる限り変更がない状態でコンテナはサービススタイルデプロイメントをサポートします。デプロイメントの情報は 「サービススタイルデプロイメントを使用するアプリケーションの更新」 を参照してください。
- リモート呼び出し
- アプリケーションがリモート呼び出しを行う場合、JNDI を使用して Bean のプロキシをルックアップし、返されたプロキシ上で呼び出しすることができます。必要な構文や名前空間の変更については 「JBoss Enterprise Application Platform 5 にデプロイされ、JBoss Enterprise Application Platform 6 へリモート呼び出しを行うアプリケーションの移行」を参照してください。
- Seam 2.2
- アプリケーションが Seam 2.2 を使用する場合は、 「Seam 2.2 アーカイブの JBoss Enterprise Application Platform 6 への移行」を参照して必要な変更について確認してください。
- Spring
- アプリケーションが Spring を使用する場合は 「Spring アプリケーションの移行」を参照してください。
- 移行に影響する可能性があるその他の変更
- アプリケーションに影響する可能性がある JBoss Enterprise Application Platform 6 のその他の変更については 「移行に影響する可能性があるその他の変更について理解する」を参照してください。
3.2.2. Hibernate および JPA の変更 リンクのコピーリンクがクリップボードにコピーされました!
3.2.2.1. Hibernate や JPA を使用するアプリケーションの更新 リンクのコピーリンクがクリップボードにコピーされました!
アプリケーションが Hibernate や JPAを使用する場合は、次の項を読んで JBoss Enterprise Application Platform 6 への移行に必要な変更を行ってください。
手順3.11
3.2.2.2. Hibernate および JPA を使用するアプリケーションの変更設定 リンクのコピーリンクがクリップボードにコピーされました!
アプリケーションに persistence.xml ファイルが含まれていたり、コードが @PersistenceContext アノテーションや @PersistenceUnit アノテーションを使用する場合、 JBoss Enterprise Application Platform 6 はデプロイメント中にこれを検出し、アプリケーションによって JPA が使用されることを想定します。Hibernate 4 とその他の依存関係の一部を暗黙的にアプリケーションのクラスパスへ追加します。
現在、アプリケーションが Hibernate 3 ライブラリを使用する場合、ほとんどの場合で Hibernate 4 へ切り替えることが可能で、Hibernate 4 を使用して正常に実行されるはずです。しかし、アプリケーションをデプロイする時に ClassNotFoundExceptions が発生した場合、次の方法の 1 つを用いて問題解決を図ることができます。
重要
手順3.12 タスク
必要な Hibernate 3 の JAR をアプリケーションライブラリへコピーする
見つからないクラスが含まれる特定の Hibernate 3 JAR をアプリケーションのlib/ディレクトリへコピーするか、他の方法を使用してクラスパスに追加すると問題を解決できることがあります。これにより、Hibernate のバージョンを複数使用することが原因でClassCastExceptionsや他のクラスローディングの問題が発生することがあります。この問題が発生した場合、次の方法で対処する必要があります。Hibernate 3 ライブラリのみを使用するようサーバーへ指示する
JBoss Enterprise Application Platorm 6 では、Hibernate 3.5 (およびそれ以降のバージョン) の永続性プロバイダー jar をアプリケーションと共にパッケージ化することができます。Hibernate 3 ライブラリのみを使用し、Hibernate 4 を除外するようサーバーを指示するには、次のようにjboss.as.jpa.providerModuleをpersistence.xmlのhibernate3-bundledに設定する必要があります。Java 永続性 API (JPA) のデプロイヤーによってアプリケーションに永続性プロバイダーがあることが検出され、Hibernate 3 ライブラリが使用されます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Hibernate の 2 次キャッシュの無効化
JBoss Enterprise Application Platorm 6 における Hibernate 3 の 2 次キャッシュの挙動は以前のリリースとは異なっています。アプリケーションを用いて Hibernate の 2 次キャッシュを使用している場合、Hibernate 4 にアップグレードするまで 2 次キャッシュを無効にする必要があります。2 次キャッシュを無効にするには、persistence.xmlファイルの<hibernate.cache.use_second_level_cache>をfalseに設定します。
3.2.2.3. Hibernate JPA 永続ユニットプロパティ リンクのコピーリンクがクリップボードにコピーされました!
JBoss Enterprise Application Platform 6 は自動的に以下の Hibernate 4.x 設定プロパティを設定します。
| プロパティ名 | デフォルト値 | 目的 |
|---|---|---|
hibernate.id.new_generator_mappings | true | @GeneratedValue(AUTO) を使用して新しいエンティティに対して一意のインデックスキーを生成する場合にこの設定は有効です。新規のアプリケーションのデフォルト値はtrue になるはずです。Hibernate 3.3.x を使用した既存のアプリケーションが継続してシーケンスオブジェクトやテーブルベースのジェネレーターを使用し、後方互換性を維持するにはデフォルト値 false に変更する必要がある場合があります。アプリケーションは persistence.xml ファイルにあるこの値を上書きすることが可能です。
詳細は以下を参照してください。
|
hibernate.transaction.jta.platform | hibernate.ejb.resource_scanner org.hibernate.service.jta.platform.spi.JtaPlatform インターフェースのインスタンス |
このクラスはトランザクションマネージャーやユーザーのトランザクション、トランザクション同期化レジストリを Hibernate に渡します。
|
hibernate.ejb.resource_scanner | org.hibernate.ejb.packaging.Scanner インターフェースのインスタンス |
このクラスは JBoss Enterprise Application Platform のアノテーションインデクサーを使用してより高速なデプロイメントを提供する方法を認識しています。
|
hibernate.transaction.manager_lookup_class |
このプロパティは
hibernate.transaction.jta.platform と競合することがあるため、persistence.xml に存在する場合は削除されます。
| |
hibernate.session_factory_name | QUALIFIED_PERSISTENCE_UNIT_NAME |
アプリケーション名 + 永続ユニット名に設定されます。アプリケーションは異なる値を指定することができますが JBoss Enterprise Application Platform インスタンス上のすべてのアプリケーションデプロイメントで一意となる値でなければなりません。
|
hibernate.session_factory_name_is_jndi | false |
アプリケーションが
hibernate.session_factory_name の値を指定しなかった場合のみ設定されます。
|
hibernate.ejb.entitymanager_factory_name | QUALIFIED_PERSISTENCE_UNIT_NAME |
アプリケーション名 + 永続ユニット名に設定されます。アプリケーションは異なる値を指定することができますが JBoss Enterprise Application Platform インスタンス上のすべてのアプリケーションデプロイメントで一意となる値でなければなりません。
|
new_generator_mappings is set to true:
@GeneratedValue(AUTO)がorg.hibernate.id.enhanced.SequenceStyleGeneratorへマッピングします。@GeneratedValue(TABLE)がorg.hibernate.id.enhanced.TableGeneratorへマッピングします。@GeneratedValue(SEQUENCE)がorg.hibernate.id.enhanced.SequenceStyleGeneratorへマッピングします。
new_generator_mappings is set to false:
@GeneratedValue(AUTO)が Hibernate の "native" へマッピングします。@GeneratedValue(TABLE)がorg.hibernate.id.MultipleHiLoPerTableGeneratorへマッピングします。@GeneratedValue(SEQUENCE)が Hibernate の "seqhilo" へマッピングします。
3.2.2.4. Hibernate 4 を使用するよう Hibernate 3 のアプリケーションを更新する リンクのコピーリンクがクリップボードにコピーされました!
Hibernate 4 を使用するようアプリケーションを更新する場合、更新の一部である一般的な更新は、アプリケーションが現在使用する Hibernate のバージョンに関係なく適用されます。その他の更新についてはアプリケーションが現在使用するバージョンを判断する必要があります。
手順3.13 Hibernate 4 を使用するようアプリケーションを更新する
- 自動インクリメントシーケンスジェネレーターのデフォルトの動作は JBoss Enterprise Application Platform 6 で変更になりました。詳細は 「Hibernate アイデンティティの自動生成値の既存動作を保持する」 を参照してください。
- アプリケーションによって現在使用されている Hibernate のバージョンを判断し、下記より適切な更新手順を選択します。
- アプリケーションをクラスター化された環境で実行する場合は 「クラスター環境で稼働する、移行された Seam および Hibernate アプリケーションの永続プロパティーの変更」 を参照してください。
3.2.2.5. Hibernate アイデンティティの自動生成値の既存動作を保持する リンクのコピーリンクがクリップボードにコピーされました!
@GeneratedValue を使用する際にアイデンティティやシーケンスカラムの生成方法を指示する hibernate.id.new_generator_mappings というコアプロパティーが導入されました。JBoss Enterprise Application Platform 6 ではこのプロパティーのデフォルト値は次のように設定されています。
- ネイティブの Hibernate アプリケーションをデプロイする場合、デフォルト値は
falseになります。 - JPA アプリケーションをデプロイする場合、デフォルト値は
trueになります。
@GeneratedValue アノテーションを使用する新しいアプリケーションでは hibernate.id.new_generator_mappings プロパティーの値を true に設定するようにします。この設定は異なるデータベースにおける移植性が高まるため推奨設定となります。ほとんどの場合で効率がよく、場合によっては JPA 2 仕様との互換性に対応します。
- 新しい JPA アプリケーションでは JBoss Enterprise Application Platform 6 の
hibernate.id.new_generator_mappingsプロパティーのデフォルトはtrueになります。この値は変更しないでください。 - 新しいネイティブの Hibernate アプリケーションでは JBoss Enterprise Application Platform 6 の
hibernate.id.new_generator_mappingsプロパティーのデフォルトはfalseになります。このプロパティーをtrueに設定してください。
JBoss Enterprise Application Platform 6 へ移行する時、@GeneratedValue アノテーションを使用する既存のアプリケーションが同じジェネレーターを使用して新しいエンティティーに対してプライマリキーの値を作成するよう確認してください。
- 既存の JPA アプリケーションでは JBoss Enterprise Application Platform 6 の
hibernate.id.new_generator_mappingsプロパティーのデフォルトはtrueになります。persistence.xmlファイルでこのプロパティーをfalseに設定してください。 - 既存のネイティブ Hibernate アプリケーションでは JBoss Enterprise Application Platform 6 の
hibernate.id.new_generator_mappingsプロパティーのデフォルトはfalseになります。この値は変更しないでください。
3.2.2.6. Hibernate 3.3.x アプリケーションの Hibernate 4.x への移行 リンクのコピーリンクがクリップボードにコピーされました!
手順3.14
Hibernate の
textタイプをJDBC LONGVARCHARへマッピングするバージョンが 3.5 以前の Hibernate ではtext型はJDBC CLOBへマッピングされていました。JavaStringプロパティーをJDBC CLOBへマッピングするため、新しい Hibernate タイプmaterialized_clobが Hibernate 4 に追加されました。JDBC CLOBへのマッピングが目的でtype="text"と設定されているプロパティーがアプリケーションにある場合は、次の項目の 1 つを実行する必要があります。- アプリケーションが hbm マッピングファイルを使用する場合、プロパティーを
type="materialized_clob"に変更します。 - アプリケーションがアノテーションを使用する場合、
@Type(type = "text")を@Lobに置き換えます。
コードを確認し戻り値型の変更を探す
数値集約の基準射影 (criteria projection) は HQL と同じ値型を返すようになるはずです。その結果、org.hibernate.criterionの以下の射影からの戻り型が変更されます。CountProjection、Projections.rowCount()、Projections.count(propertyName)、Projections.countDistinct(propertyName)の変更により、countおよびcount distinct射影はLong値を返すようになります。Projections.sum(propertyName)の変更により、sum射影はプロパティー型によって異なる値タイプを返すようになります。注記
アプリケーションコードを変更しないと、java.lang.ClassCastExceptionが発生する原因となります。- Long、Short、Integer、プリミティブ型整数のいずれかとしてマッピングされているプロパティーは Long 値が返されます。
- Float、Double、プリミティブ浮動小数点型のいずれかとしてマッピングされているプロパティーは Double 値が返されます。
3.2.2.7. Hibernate 3.5.x アプリケーションの Hibernate 4.x への移行 リンクのコピーリンクがクリップボードにコピーされました!
手順3.15
AnnotationConfiguration の設定へのマージ
AnnotationConfigurationは既に廃止されていますが、移行に影響しないようにしなければなりません。今でもhbm.xmlファイルを使用している場合、JBoss Enterprise Application Platform 6 では 以前のリリースで使用されたorg.hibernate.cfg.DefaultNamingStrategyではなく、AnnotationConfigurationのorg.hibernate.cfg.EJB3NamingStrategyを使用することに注意してください。そのため、名前付けの不一致が発生する可能性があります。名前付けストラテジーがデフォルトのアソシエーション (要素の多対多やコレクション) テーブルに依存する場合、この問題が発生することがあります。この問題を解決するには、レガシーのorg.hibernate.cfg.DefaultNamingStrategyを使用するよう Hibernate に指示するためConfiguration#setNamingStrategyを呼び出してorg.hibernate.cfg.DefaultNamingStrategy#INSTANCEに渡します。新しい Hibernate DTD ファイル名に適合するよう名前空間を変更する
Expand 表3.4 以前の DTD 名前空間 新しい DTD 名前空間 http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd 環境変数の編集
- Oracle で
materialized_clobまたはmaterialized_blobプロパティーを使用している場合、グローバル環境変数hibernate.jdbc.use_streams_for_binaryを true に設定する必要があります。 - PostgreSQL で
CLOBまたはBLOBプロパティーを使用している場合、グローバル環境変数hibernate.jdbc.use_streams_for_binaryを false に設定する必要があります。
3.2.2.8. クラスター環境で稼働する、移行された Seam および Hibernate アプリケーションの永続プロパティーの変更 リンクのコピーリンクがクリップボードにコピーされました!
javax.ejb.EJBTransactionRolledbackException: JBAS010361: Failed to deserialize .... Caused by: java.io.InvalidObjectException: could not resolve session factory during session deserialization [uuid=8aa29e74373ce3a301373ce3a44b0000, name=null]
javax.ejb.EJBTransactionRolledbackException: JBAS010361: Failed to deserialize
....
Caused by: java.io.InvalidObjectException: could not resolve session factory during session deserialization [uuid=8aa29e74373ce3a301373ce3a44b0000, name=null]
persistence.xml ファイルになります。ネイティブの Hibernate API アプリケーションでは hibernate.cfg.xml ファイルになります。
手順3.16 クラスター環境で稼働する永続プロパティ設定
hibernate.session_factory_name値を一意名に設定します。この名前は、JBoss Enterprise Application Platform インスタンス上の全アプリケーションデプロイメントにわたって一意である必要があります。例は次の通りです。<property name="hibernate.session_factory_name" value="jboss-seam-booking.ear_session_factory"/>
<property name="hibernate.session_factory_name" value="jboss-seam-booking.ear_session_factory"/>Copy to Clipboard Copied! Toggle word wrap Toggle overflow hibernate.ejb.entitymanager_factory_name値を一意名に設定します。この名前は、JBoss Enterprise Application Platform インスタンス上の全アプリケーションデプロイメントにわたって一意である必要があります。例は次の通りです。<property name="hibernate.ejb.entitymanager_factory_name" value="seam-booking.ear_PersistenceUnitName"/>
<property name="hibernate.ejb.entitymanager_factory_name" value="seam-booking.ear_PersistenceUnitName"/>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2.2.9. JPA 2.0 の仕様に準拠するようアプリケーションを更新する リンクのコピーリンクがクリップボードにコピーされました!
JPA 2.0 の仕様では、永続コンテキストが JTA トランザクションの外部では伝播できないことが要件となっています。アプリケーションがトランザクションスコープの永続コンテキストのみを使用する場合、JBoss Enterprise Application Platform 6 での挙動は以前のバージョンと変わらないため、変更を加える必要はありません。アプリケーションが拡張永続コンテキスト (XPC) を使用してデータ変更のキューやバッチ処理を許可する場合は、アプリケーションを変更する必要があります。
拡張永続コンテキストを使用するステートフルセッション Bean である Bean1 がアプリケーションにあり、トランザクションスコープの永続コンテキストを使用するステートレスセッション Bean である Bean2 を呼び出す場合、次のような挙動が想定されます。
Bean1が JTA トランザクションを開始し、JTA トランザクションがアクティブな状態でBean2メソッドを呼び出す場合、JBoss Enterprise Application Platform 6 における挙動は以前のリリースと変わらないため、変更を加える必要はありません。Bean1が JTA トランザクションを開始せず、Bean2メソッドを呼び出す場合、JBoss Enterprise Application Platform 6 は拡張永続コンテキストをBean2へ伝搬しません。この挙動は拡張永続コンテキストをBean2へ伝搬した以前のリリースとは異なっています。拡張永続コンテキストがトランザクションエンティティーマネージャーによって Bean へ伝搬されることをアプリケーションが想定している場合、アクティブな JTA トランザクション内で呼び出しを行うようにアプリケーションを変更する必要があります。
3.2.2.10. Infinispan による JPA/Hibernate 2 次キャッシュの置き換え リンクのコピーリンクがクリップボードにコピーされました!
2 次キャッシュ (2LC) に関し、 JBoss Cache は Infinispan に置き換えられました。これにより、persistence.xml ファイルの変更が必要になります。使用する 2 次キャッシュが JPA または Hibernate であるかによって、構文は若干異なります。ここで取り上げる例は Hibernate の使用が前提となっています。
persistence.xml ファイルで 2 次キャッシュのプロパティーを設定する例になります。
手順3.17 Infinispan を使用するよう persistence.xml ファイルを変更する
JBoss Enterprise Application Platform 6 の JPA アプリケーション向けに Infinispan を設定する
JBoss Enterprise Application Platform 6 で Infinispan を使用し、プロパティーを指定して JPA アプリケーションに対して同じ設定を行う方法は次の通りです。さらに、次のように<property name="hibernate.cache.use_second_level_cache" value="true"/>
<property name="hibernate.cache.use_second_level_cache" value="true"/>Copy to Clipboard Copied! Toggle word wrap Toggle overflow ENABLE_SELECTIVEまたはALLを値としてshared-cache-modeを指定する必要があります。- デフォルトは
ENABLE_SELECTIVEで、これが推奨値となります。この場合、エンティティーは明示的にキャッシュ可能であるとマークされない限りキャッシュされません。<shared-cache-mode>ENABLE_SELECTIVE</shared-cache-mode>
<shared-cache-mode>ENABLE_SELECTIVE</shared-cache-mode>Copy to Clipboard Copied! Toggle word wrap Toggle overflow ALLの場合、キャッシュ不可能であるとマークされていてもエンティティーは常にキャッシュされます。<shared-cache-mode>ALL</shared-cache-mode>
<shared-cache-mode>ALL</shared-cache-mode>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
JBoss Enterprise Application Platform 6 のネイティブ Hibernate アプリケーションに対して Infinispan を設定する
JBoss Enterprise Application Platform 6 で Infinispan を使用し、ネイティブ Hibernate アプリケーションに対して同じ設定を指定する方法は次の通りです。また、次の依存関係をCopy to Clipboard Copied! Toggle word wrap Toggle overflow MANIFEST.MFファイルに追加する必要があります。Manifest-Version: 1.0 Dependencies: org.infinispan, org.hibernate
Manifest-Version: 1.0 Dependencies: org.infinispan, org.hibernateCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2.2.11. Hibernate キャッシュプロパティー リンクのコピーリンクがクリップボードにコピーされました!
| プロパティー名 | 説明 |
|---|---|
hibernate.cache.provider_class |
カスタム
CacheProvider のクラス名。
|
hibernate.cache.use_minimal_puts |
ブール変数です。2 次キャッシュの操作を最適化し、読み取りの回数を増やして書き込みを最小限にします。これはクラスター化されたキャッシュで最も便利な設定で、Hibernate 3 ではクラスター化されたキャッシュの実装に対してデフォルトで有効になっています。
|
hibernate.cache.use_query_cache |
ブール変数です。クエリキャッシュを有効にします。各クエリをキャッシュ可能に設定する必要があります。
|
hibernate.cache.use_second_level_cache |
ブール変数です。
<cache> マッピングを指定するクラスに対してデフォルトで有効になっている 2 次 キャッシュを完全に無効にするため使用されます。
|
hibernate.cache.query_cache_factory |
カスタム
QueryCache インターフェースのクラス名です。デフォルトの値はビルトイン StandardQueryCache です。
|
hibernate.cache.region_prefix |
2 次キャッシュのリージョン名に使用するプレフィックスです。
|
hibernate.cache.use_structured_entries |
ブール変数です。人間が解読可能な形式でデータを 2 次キャッシュに保存するよう Hibernate を強制します。
|
hibernate.cache.default_cache_concurrency_strategy | @Cacheable か @Cache が使用される場合に使用するデフォルトの org.hibernate.annotations.CacheConcurrencyStrategy の名前を付与するため使用される設定です。@Cache(strategy="..") を使用してこのデフォルトが上書きされます。
|
3.2.2.12. Hibernate Validator 4 への移行 リンクのコピーリンクがクリップボードにコピーされました!
Hibernate Validator 4.x は、JSR 303 - Bean Validation を実装する完全に新しいコードベースです。Validator 3.x から 4.x への移行プロセスは非常に簡単ですが、アプリケーションの移行時にいくつかの変更を行う必要があります。
手順3.18 以下の 1 つまたは複数のタスクを実行する必要がある場合があります。
デフォルトの ValidatorFactory へのアクセス
JBoss Enterprise Application Platform 6 は、デフォルトの ValidatorFactory をjava:comp/ValidatorFactory以下にある JNDI コンテキストにバインドします。ライフサイクルでトリガーされた検証の理解
Hibernate Core 4 と組み合わせて使用する場合、ライフサイクルベースの検証は Hibernate Core により自動的に有効になります。- 検証は、エンティティー
INSERT操作、UPDATE操作、およびDELETE操作に対して行われます。 - 次のプロパティーを使用してイベントタイプによってグループが検証されるよう設定することができます。これらのプロパティーの値は、検証するグループの、カンマで区切られた完全修飾クラス名です。
javax.persistence.validation.group.pre-persist、javax.persistence.validation.group.pre-update、javax.persistence.validation.group.pre-remove
検証グループは、Bean Validation 仕様の新しい機能です。この新しい機能を使用しない場合は、Hibernate Validator 4 に移行するときに変更を必要としません。 - ライフサイクルベース検証は、
javax.persistence.validation.modeプロパティーをnoneに設定することにより無効できます。このプロパティーの他の有効値はauto(デフォルト値)、callback、およびddlです。
アプリケーションが手動の検証を使用するよう設定
- 検証を手動で制御する場合、次のいずれかの方法で Validator を作成できます。
getValidator()メソッドを使用してValidatorFactoryからValidatorインスタンスを作成します。- Validator インスタンスを EJB、CDI Bean、または他の Java EE の挿入可能なリソースに挿入します。
- Validator インスタンスをカスタマイズするために、
ValidatorFactory.usingContext()により返されたValidatorContextを使用できます。この API を使用して、カスタムMessageInterpolator、TraverableResolver、およびConstraintValidatorFactoryを設定できます。これらのインターフェースは、Bean Validation 仕様で指定され、Hibernate Validator 4 で新しい機能です。
新しい Bean Validation の制約を使用するようコードを変更
Hibernate Validator 4 への移行時に、新しい Bean レベル検証制約では、コードの変更が必要です。- Hibernate Validator 4 にアップグレードする場合は、次のパッケージの制約を使用する必要があります。
javax.validation.constraintsorg.hibernate.validator.constraints
- Hibernate Validator 3 に存在していたすべての制約は、Hibernate Validator 4 でも引き続き利用できます。これらを使用するには、指定されたクラスをインポートし、場合によっては、制約パラメーターの名前またはタイプを変更する必要があります。
カスタム制約の使用
Hibernate Validator 3 では、カスタム制約でorg.hibernate.validator.Validatorインターフェースを実装する必要がありました。Hibernate Validator 4 では、javax.validation.ConstraintValidatorインターフェースを実装する必要があります。このインターフェースには、以前のインターフェースと同じinitialize()メソッドとisValid()メソッドが含まれますが、メソッドシグネチャーが変更されました。また、代替のDDLは Hibernate Validator 4 でサポートされなくなりました。
3.2.3. JAX-RS および RESTEasy の変更 リンクのコピーリンクがクリップボードにコピーされました!
3.2.3.1. JAX-RS および RESTEasy の変更の設定 リンクのコピーリンクがクリップボードにコピーされました!
web.xml ファイルから既存の RESTEasy の設定をすべて削除し、次の 3 つのオプションの 1 つに置き換える必要があります。
- Subclass
javax.ws.rs.core.Applicationおよび@ApplicationPathannotation アノテーションの使用。これが最も簡単なオプションで、xml の設定が必要ありません。次のようにアプリケーションでjavax.ws.rs.core.Applicationをサブクラス化し、 JAX-RS クラスを使用可能にするパスを用いてアノテーションを付けます。@ApplicationPath("/mypath") public class MyApplication extends Application { }@ApplicationPath("/mypath") public class MyApplication extends Application { }Copy to Clipboard Copied! Toggle word wrap Toggle overflow 上記の例では、JAX-RS リソースはパス/MY_WEB_APP_CONTEXT/mypath/で使用できるようになります。注記
パスは/mypath/*ではなく/mypathとして指定する必要があることに注意してください。最後にフォワードスラッシュやアスタリスクがあってはなりません。 - サブクラス
javax.ws.rs.core.Applicationおよび JAX-RS マッピングの設定にweb.xmlを使用する。@ApplicationPathアノテーションを使用したくない場合でもjavax.ws.rs.core.Applicationをサブクラス化する必要があります。サブクラス化した後にweb.xmlファイルに JAX-RS マッピングを設定します。public class MyApplication extends Application { }public class MyApplication extends Application { }Copy to Clipboard Copied! Toggle word wrap Toggle overflow <servlet-mapping> <servlet-name>com.acme.MyApplication</servlet-name> <url-pattern>/hello/*</url-pattern> </servlet-mapping>
<servlet-mapping> <servlet-name>com.acme.MyApplication</servlet-name> <url-pattern>/hello/*</url-pattern> </servlet-mapping>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 上記の例では、JAX-RS リソースはパス/MY_WEB_APP_CONTEXT/helloで使用できるようになります。注記
この方法を使用して@ApplicationPathアノテーションを使用して設定されたアプリケーションパスを上書きすることもできます。 web.xmlファイルの変更Applicationをサブクラス化したくない場合、次のようにweb.xmlファイルで JAX-RS のマッピングを設定することが可能です。<servlet-mapping> <servlet-name>javax.ws.rs.core.Application</servlet-name> <url-pattern>/hello/*</url-pattern> </servlet-mapping>
<servlet-mapping> <servlet-name>javax.ws.rs.core.Application</servlet-name> <url-pattern>/hello/*</url-pattern> </servlet-mapping>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 上記の例では、JAX-RS リソースはパス/MY_WEB_APP_CONTEXT/helloで使用できるようになります。注記
このオプションを選択した場合、マッピングの追加のみが必要となります。対応するサーブレットを追加する必要はありません。対応するサーブレットはサーバーによって自動的に追加されるはずです。
3.2.4. LDAP セキュリティーレルムの変更 リンクのコピーリンクがクリップボードにコピーされました!
3.2.4.1. LDAP セキュリティーレルムの変更設定 リンクのコピーリンクがクリップボードにコピーされました!
login-config.xml ファイルの <application-policy> 要素に設定されていました。JBoss Enterprise Application Platform 6 では、LDAP セキュリティーレルムはサーバー設定ファイルの <security-domain> 要素に設定されています。サーバー設定ファイルはスタンドアロンサーバーでは standalone/configuration/standalone.xml ファイルになります。サーバーが管理ドメインで実行されている場合、domain/configuration/domain.xml ファイルがサーバー設定ファイルになります。
login-config.xml ファイルにある LDAP セキュリティーレルム設定の例は次の通りです。
注記
<module-option name="java.naming.factory.initial">com.sun.jndi.ldap.LdapCtxFactory</module-option>
<module-option name="java.naming.factory.initial">com.sun.jndi.ldap.LdapCtxFactory</module-option>
<module-option name="java.naming.factory.initial" value="com.sun.jndi.ldap.LdapCtxFactory"/>
<module-option name="java.naming.factory.initial" value="com.sun.jndi.ldap.LdapCtxFactory"/>
3.2.5. HornetQ の変更 リンクのコピーリンクがクリップボードにコピーされました!
3.2.5.1. 既存の JMS メッセージを Enterprise Application Platform 6 へ移行するため JMS ブリッジを設定する リンクのコピーリンクがクリップボードにコピーされました!
手順3.19 JMS ブリッジの設定
- 次の例に従って、SAR が含まれるように Enterprise Application Platform 5 の deploy ディレクトリにサブディレクトリを作成します。
EAP5_HOME/server/PROFILE_NAME/deploy/myBridge.sar EAP5_HOME/server/PROFILE_NAME/deploy/myBridge.sar/にMETA-INFという名前のサブディレクトリを作成します。- 以下と似た情報が含まれる
jboss-service.xmlファイルをEAP5_HOME/server/PROFILE_NAME/deploy/myBridge.sar/META-INF/ディレクトリに作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記
<load-repository>は SAR に分離されたクラスローダーが確実に存在するようにします。JNDI ルックアップとブリッジの「ターゲット」の両方に、パスワードが 「jbosspass」であるユーザー 「jbossuser」のセキュリティー認証情報が含まれていることに注意してください。これは、JBoss Enterprise Application Platform 6 はデフォルトで保護されているからです。パスワードが 「jbosspass」であるユーザー「jbossuser」はguestロールを持ち、EAP_HOME/bin/add_user.shスクリプトを使用してApplicationRealmに作成されました。 - 次の JAR を
EAP_HOME/modules/ディレクトリからEAP5_HOME/server/PROFILE_NAME/deploy/myBridge.sar/ディレクトリへコピーします。 VERSION_NUMBER を JBoss Enterprise Application Platform 6 ディストリビューションの実際のバージョン番号に置き換えてください。org/hornetq/main/hornetq-core-VERSION_NUMBER.jarorg/hornetq/main/hornetq-jms-VERSION_NUMBER.jarorg/jboss/ejb-client/main/jboss-ejb-client-VERSION_NUMBER.jarorg/jboss/logging/main/jboss-logging-VERSION_NUMBER.jarorg/jboss/logmanager/main/jboss-logmanager-VERSION_NUMBER.jarorg/jboss/marshalling/main/jboss-marshalling-VERSION_NUMBER.jarorg/jboss/marshalling/river/main/jboss-marshalling-river-VERSION_NUMBER.jarorg/jboss/remote-naming/main/jboss-remote-naming-VERSION_NUMBER.jarorg/jboss/remoting3/main/jboss-remoting-VERSION_NUMBER.jarorg/jboss/sasl/main/jboss-sasl-VERSION_NUMBER.jarorg/jboss/netty/main/netty-VERSION_NUMBER.jarorg/jboss/remoting3/remote-jmx/main/remoting-jmx-VERSION_NUMBER.jarorg/jboss/xnio/main/xnio-api-VERSION_NUMBER.jarorg/jboss/xnio/nio/main.xnio-nio-VERSION_NUMBER.jar
注記
javax API クラスは Enterprise Application Platform 5.x のクラスと競合するため、単にそのままEAP_HOME/bin/client/jboss-client.jarをコピーしないようにしてください。
3.2.5.2. HornetQ を JMS プロバイダーとして使用するためにアプリケーションを移行 リンクのコピーリンクがクリップボードにコピーされました!
手順3.20 開始する前に
- クライアントとサーバーをシャットダウンします。
- JBoss Messaging データのバックアップコピーを作成します。
手順3.21 HornetQ へのプロバイダーの変更
設定の転送
最初に、既存の JBoss Messaging 設定を Enterprise Application Platform 設定に転送する必要があります。以下の設定が、 JBoss Mesaging サーバーにあるデプロイメント記述子に存在します。- 接続ファクトリーサービス設定この設定は、 JBoss Messaging サーバーにデプロイされた JMS 接続ファクトリーを定義します。JBoss Messaging は、アプリケーションサーバーのデプロイメントディレクトリにある
connection-factories-service.xmlという名前のファイルで接続ファクトリーを設定します。 - 宛先設定この設定は、JBoss Messaging サーバーでデプロイされた JMS キューおよびトピックを定義します。デフォルトでは、JBoss Messaging は、アプリケーションサーバーのデプロイメントディレクトリにある
destinations-service.xmlという名前のファイルで宛先を設定します。 - メッセージブリッジサービス設定この設定には、JBoss Messaging サーバーでデプロイされたブリッジサービスが含まれます。デフォルトではブリッジがデプロイされないため、デプロイメントファイルの名前は、JBoss Messaging インストールによって異なります。
アプリケーションコードの変更
アプリケーションコードで標準的な JMS を使用する場合は、コードの変更が必要ありません。ただし、アプリケーションが JBoss Messaging に固有な機能を使用する場合は、HornetQ で利用可能な同等の機能を使用するようコードを変更する必要があります。HornetQ でメッセージングを設定する方法の詳細については、 「HornetQ でのメッセージングの設定」 を参照してください。ブリッジおよび JMS 管理オブジェクトの移行
JBoss Messaging は、 Managed Bean サービスを使用してブリッジと接続ファクトリーなどの JMS オブジェクト、キュー、およびトピックを設定します。HornetQ は POJO (Plain Old Java Object) を使用してこれらのオブジェクトを設定します。HornetQ で同等のパラメーターを使用するには設定パラメーターを更新する必要があります。既存のメッセージの移行
JBoss Messaging データベースのすべてのメッセージを HornetQ バインディングに移動します。
3.2.5.3. HornetQ でのメッセージングの設定 リンクのコピーリンクがクリップボードにコピーされました!
standalone.xml や domain.xml 設定ファイルを手作業で編集せずに永続的な変更を行うことができますが、デフォルト設定ファイルのメッセージングコンポーネントについて理解できると便利です。デフォルトの設定ファイルには、管理ツールを使用するドキュメントの例に参考用の設定ファイルスニペットがあります。
3.2.6. クラスタリングの変更 リンクのコピーリンクがクリップボードにコピーされました!
3.2.6.1. クラスタリングに対するアプリケーションの変更 リンクのコピーリンクがクリップボードにコピーされました!
手順3.22
クラスタリグが有効な状態で JBoss Enterprise Application Platform 6 を起動する
JBoss Enterprise Application Platform 5.x でクラスタリングを有効にするには、次のようにallプロファイル (またはその派生プロファイル) を使用してサーバーインスタンスを起動する必要がありました。$ EAP5_HOME/bin/run.sh -c allJBoss Enterprise Application Platform 6 でクラスタリングを有効にする方法は、サーバーがスタンドアロンであるか管理ドメインで実行されているかによって異なります。管理ドメインで実行されているサーバーに対してクラスタリングを有効にする
ドメインコントローラーを使用して起動したサーバーに対してクラスタリングを有効にするには、domain.xmlを更新し、haプロファイルとha-socketsソケットバインディンググループを使用するサーバーグループを指定します。例は次の通りです。Copy to Clipboard Copied! Toggle word wrap Toggle overflow スタンドアロンサーバーに対してクラスタリングを有効にする
スタンドアロンサーバーに対してクラスタリングを有効にするには、次のように適切な設定ファイルを使用してサーバーを起動します。$ EAP_HOME/bin/standalone.sh --server-config=standalone-ha.xml
バインドアドレスの指定
JBoss Enterprise Application Platform 5.x では、通常$ EAP_HOME/bin/run.sh -c all -b 192.168.0.2のように-bコマンドライン引数を用いてクラスタリングに使用するバインドアドレスを指定しました。JBoss Enterprise Application Platform 6 では、JBoss Enterprise Application Platform 6 の設定ファイル内の関連するソケットバインディングによってバインドアドレスが明示的に定義されます。ドメインコントローラーを用いて起動したサーバーの場合、バインドアドレスはdomain/configuration/host.xmlファイル内で指定されます。スタンドアロンサーバーの場合、バインドアドレスはstandalone-ha.xmlファイル内で指定されます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 上記の例では、<socket-binding-groups> <socket-binding-group name="ha-sockets" default-interface="public"> <!-- ... --> </socket-binding-group> </socket-binding-groups><socket-binding-groups> <socket-binding-group name="ha-sockets" default-interface="public"> <!-- ... --> </socket-binding-group> </socket-binding-groups>Copy to Clipboard Copied! Toggle word wrap Toggle overflow ha-socketsソケットバインディンググループ内のすべてのソケットに対するデフォルトインターフェースにpublicインターフェースが指定されています。マルチキャストアドレスおよびポートの指定
JBoss Enterprise Application Platform 5.x では、次のようにコマンドライン引数-uを使用してクラスター内の通信に使用されるマルチキャストアドレスを指定することができました。 同様に、引数-mを使用してクラスター内の通信に使用されるポートを指定することができました。$ EAP_HOME/bin/run.sh -c all -u 228.11.11.11 -m 45688JBoss Enterprise Application Platform 6 では、クラスター間の通信に使用されるマルチキャストアドレスとポートは、関連する JGroups プロトコルスタックによって参照されるソケットバインディングによって次のように定義されます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドラインでマルチキャストアドレスとポートを指定したい場合、マルチキャストアドレスとポートをシステムプロパティーとして定義した後、サーバー起動時にこれらのプロパティーをコマンドライン上で使用します。次の例では、Copy to Clipboard Copied! Toggle word wrap Toggle overflow jboss.mcast.addrはマルチキャストアドレスの変数名、jboss.mcast.portはポートの変数名になります。その後、次のコマンドライン引数を使用してサーバーを起動できます。<socket-binding name="jgroups-udp" port="55200" multicast-address="${jboss.mcast.addr:230.0.0.4}" multicast-port="${jboss.mcast.port:45688}"/><socket-binding name="jgroups-udp" port="55200" multicast-address="${jboss.mcast.addr:230.0.0.4}" multicast-port="${jboss.mcast.port:45688}"/>Copy to Clipboard Copied! Toggle word wrap Toggle overflow $ EAP_HOME/bin/domain.sh -Djboss.mcast.addr=228.11.11.11 -Djboss.mcast.port=45688代替のプロトコルスタックの使用
JBoss Enterprise Application Platform 5.x では、jboss.default.jgroups.stackシステムプロパティーを使用してすべてのクラスタリングサービスに使用されるデフォルトのプロトコルスタックを操作することができました。$ EAP_HOME/bin/run.sh -c all -Djboss.default.jgroups.stack=tcpJBoss Enterprise Application Platform 6 では、domain.xmlまたはstandalone-ha.xml内の JGroups サブシステムによってデフォルトのプロトコルスタックが定義されます。<subsystem xmlns="urn:jboss:domain:jgroups:1.0" default-stack="udp"> <stack name="udp"> <!-- ... --> </stack> </subsystem><subsystem xmlns="urn:jboss:domain:jgroups:1.0" default-stack="udp"> <stack name="udp"> <!-- ... --> </stack> </subsystem>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2.6.2. HA シングルトンの実装 リンクのコピーリンクがクリップボードにコピーされました!
JBoss Enterprise Application Platform 5 では、HA シングルトンアーカイブは他のデプロイメントとは別に deploy-hasingleton/ ディレクトリにデプロイされていました。これは自動デプロイメントが発生しないようにするためで、また確実に HASingletonDeployer サービスがデプロイメントを制御し、クラスターのマスターノードのみにアーカイブがデプロイされるようにするための処置でした。ホットデプロイメント機能がなかったため、再デプロイメントにはサーバーの再起動が必要でした。また、マスターノードに障害が発生し、他のノードがマスターとして引き継ぐ必要がある場合、シングルトンサービスはサービスを提供するためデプロイメントプロセス全体を実行する必要がありました。
手順3.23 HA シングルトンサービスの実装
HA シングルトンサービスアプリケーションの作成
シングルトンサービスとしてデプロイされる SingletonService デコレーターでラッピングされたサービスの簡単な例は次の通りです。シングルトンサービスを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - サーバー起動時にサービスを SingletonService として開始するシングルトン EJB を作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow クライアントよりサービスへアクセスするためステートレスセッション Bean を作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow SingletonService のビジネスロジックインターフェースを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
クラスタリングが有効な状態で各 Jboss Enterprise Application Platform 6 インスタンスを起動する
クラスターを有効化する方法は、サーバーがスタンドアローンであるか管理ドメインで実行されているかによって異なります。管理ドメインで実行されているサーバーに対してクラスタリングを有効にする
ドメインコントローラーを使用して起動したサーバーに対してクラスタリングを有効にするには、domain.xmlを更新し、haプロファイルとha-socketsソケットバインディンググループを使用するようサーバーグループを指定します。例は次の通りです。次のようにCopy to Clipboard Copied! Toggle word wrap Toggle overflow host.xmlファイルを変更します。その後、次のようにサーバーを起動します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Linux では
EAP_HOME/bin/domain.shと入力します。 - Microsoft Windows では
EAP_HOME\bin\domain.batと入力します。
スタンドアローンサーバーに対してクラスタリングを有効にする
スタンドアローンサーバーに対してクラスタリングを有効にするには、次のようにノード名とstandalone-ha.xml設定ファイルを使用してサーバーを起動します。- Linux では
EAP_HOME/bin/standalone.sh --server-config=standalone-ha.xml -Djboss.node.name=UNIQUE_NODE_NAMEと入力します。 - Microsoft Windows では
EAP_HOME\bin\standalone.bat --server-config=standalone-ha.xml -Djboss.node.name=UNIQUE_NODE_NAMEと入力します。
注記
1 つのマシン上で複数のサーバーが実行されている時にポートの競合が発生しないようにするため、別のインターフェースでバインドするように各サーバーインスタンスに対してstandalone-ha.xmlファイルを設定します。または、コマンドラインで-Djboss.socket.binding.port-offset=100のような引数を使用し、ポートオフセットを持つ後続のサーバーインスタンスを開始して対応することも可能です 。アプリケーションをサーバーにデプロイする
Maven を使用してアプリケーションをデプロイする場合は、次の Maven コマンドを使用してデフォルトのポートで稼働しているサーバーへデプロイします。mvn clean install jboss-as:deploy追加のサーバーをデプロイするには、サーバー名とポート番号をコマンドラインに渡します。mvn clean package jboss-as:deploy -Ddeploy.hostname=localhost -Ddeploy.port=10099
3.2.7. サービススタイルデプロイメントの変更 リンクのコピーリンクがクリップボードにコピーされました!
3.2.7.1. サービススタイルデプロイメントを使用するアプリケーションの更新 リンクのコピーリンクがクリップボードにコピーされました!
JBoss Enterprise Application Platform 6 はサービススタイル記述子を使用しないようになりましたが、できる限り変更がない状態でコンテナはサービススタイルデプロイメントをサポートします。そのため、JBoss Enterprise Application 5.x アプリケーションの jboss-service.xml または jboss-beans.xml デプロイメント記述子を使用した場合、JBoss Enterprise Application Platform 6 へ変更をほとんどまたは全く加えなくても実行できるはずです。継続してファイルを EAR や SAR にパッケージ化することが可能ですが、ファイルを直接 deployments ディレクトリに置くこともできます。スタンドアロンサーバーをを実行している場合、deployments ディレクトリは EAP_HOME/standalone/deployments/ になります。管理ドメインを実行している場合、 deployments フォルダーは EAP_HOME/domain/deployments/ になります。
3.2.8. リモート呼び出しの変更 リンクのコピーリンクがクリップボードにコピーされました!
JBoss Enterprise Application Platform 6 では、次の 2 つの方法でサーバーへリモート呼び出しすることができます。
- 新しい JBoss 固有の EJB クライアント API を使用して呼び出しを行う。
- JNDI を使用して Bean のプロキシをルックアップし、返されたプロキシ上で呼び出しを行う。
ejb:NAMESPACE_NAME を使用して EJB へリモートアクセスします。ステートレス Bean の場合、構文は次のようになります。
ejb:<app-name>/<module-name>/<distinct-name>/<bean-name>!<fully-qualified-classname-of-the-remote-interface>
ejb:<app-name>/<module-name>/<distinct-name>/<bean-name>!<fully-qualified-classname-of-the-remote-interface>
ejb:<app-name>/<module-name>/<distinct-name>/<bean-name>!<fully-qualified-classname-of-the-remote-interface>?stateful
ejb:<app-name>/<module-name>/<distinct-name>/<bean-name>!<fully-qualified-classname-of-the-remote-interface>?stateful
<app-name>- デプロイされた EJB のアプリケーション名。通常、.ear サフィックスを抜かした ear 名になりますが、application.xml ファイルで名前が上書きされる場合があります。アプリケーションが .ear としてデプロイされていない場合、この値は空の文字列となります。この例は EAR としてデプロイされていないことを仮定します。<module-name>- サーバー上のデプロイされた EJB のモジュール名。通常、.jar サフィックスを除いた EJB デプロイメントの jar 名になりますが、ejb-jar.xml を使用して名前が上書きされる場合があります。この例では、EJB が jboss-as-ejb-remote-app.jar にデプロイされていることを仮定しているため、モジュール名は jboss-as-ejb-remote-app になります。<distinct-name>- EJB の任意の distinct name です。この例では distinct name は使用しないため、空の文字列を使用します。<bean-name>- デフォルトでは Bean 実装クラスの簡単なクラス名になります。<fully-qualified-classname-of-the-remote-interface>- リモートビューの完全修飾クラス名。
次のステートレス EJB を JBoss Enterprise Application 6 サーバーにデプロイしたことにします。これにより、Bean のリモートビューが公開されます。
final RemoteCalculator statefulRemoteCalculator = (RemoteCalculator) context.lookup("ejb:" + appName + "/" + moduleName + "/" + distinctName + "/" + beanName + "!" + viewClassName + "?stateful")
final RemoteCalculator statefulRemoteCalculator = (RemoteCalculator) context.lookup("ejb:" + appName + "/" + moduleName + "/" + distinctName + "/" + beanName + "!" + viewClassName + "?stateful")
3.2.8.2. JNDI を使用したリモートでのセッション Bean の呼び出し リンクのコピーリンクがクリップボードにコピーされました!
remote-ejb クイックスタートには、この機能を実証する Maven プロジェクトが含まれています。デプロイするセッション Bean のプロジェクトとリモートクライアントのプロジェクトの両方が含まれています。下記のコード例はリモートクライアントのプロジェクトから引用されています。
前提条件
- Maven プロジェクトが作成され、使用できる状態である。
- JBoss Enterprise Application Platform 6 の Maven リポジトリが既に追加されている。
- 呼び出しするセッション Bean が既にデプロイされている。
- デプロイされたセッション Bean がリモートビジネスインターフェースを実装する。
- セッション Bean のリモートビジネスインターフェースは Maven 依存関係として使用できる。リモートビジネスインターフェースが JAR ファイルとしてのみ使用できる場合は、JAR をアーティファクトとして Maven リポジトリに追加することが推奨されます。http://maven.apache.org/plugins/maven-install-plugin/usage.html にある Maven ドキュメントの
install:install-fileゴールを参照してください。 - セッション Bean をホストするサーバーのホスト名と JNDI ポートを覚えておく必要があります。
手順3.24 セッション Bean のリモート呼び出しに対する Maven プロジェクト設定の追加
必要なプロジェクト依存関係の追加
必要な依存関係が含まれるようにするため、プロジェクトのpom.xmlを更新する必要があります。jboss-ejb-client.propertiesファイルの追加JBoss EJB クライアント API は、JNDI サービスの接続情報が含まれるjboss-ejb-client.propertiesという名前のプロジェクトのルートにファイルがあることを想定します。このファイルを以下の内容と共にプロジェクトのsrc/resources/ディレクトリに追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ホスト名とポートを変更してサーバーと一致するようにします。4447がデフォルトのポート番号です。 安全な接続の場合、SSL_ENABLED行をtrueに設定し、SSL_STARTTLS行をアンコメントします。コンテナ内のリモーティングインターフェースは同じポートを使用して安全な接続と安全でない接続をサポートします。リモートビジネスインターフェースの依存関係の追加
セッション Bean のリモートビジネスインターフェースに対するpom.xmlに Maven の依存関係を追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
手順3.25 JNDI を使用して Bean プロキシを取得し、Bean のメソッドを呼び出す
チェック例外の処理
次のコードに使用されるメソッドの 2 つ (InitialContext()およびlookup()) は、タイプjavax.naming.NamingExceptionのチェック例外を持っています。これらのメソッド呼び出しはNamingExceptionをキャッチする try/catch ブロックか、NamingExceptionのスローが宣言されたメソッドで囲まなければなりません。remote-ejbクイックスタートではNamingExceptionのスローが宣言されたメソッドで囲む方法を使用します。JNDI コンテキストの作成
JNDI コンテキストオブジェクトはサーバーよりリソースを要求するメカニズムを提供します。次のコードを使用して JNDI コンテキストを作成します。final Hashtable jndiProperties = new Hashtable(); jndiProperties.put(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming"); final Context context = new InitialContext(jndiProperties);
final Hashtable jndiProperties = new Hashtable(); jndiProperties.put(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming"); final Context context = new InitialContext(jndiProperties);Copy to Clipboard Copied! Toggle word wrap Toggle overflow JNDI サービスの接続プロパティーはjboss-ejb-client.propertiesファイルより読み取られます。JNDI コンテキストの lookup() メソッドを使用した Bean プロキシの取得
Bean プロキシのlookup()メソッドを呼び出し、必要なセッション Bean の JNDI 名 へ渡します。これにより、呼び出したいメソッドが含まれるリモートビジネスインターフェースのタイプへキャストされなければならないオブジェクトが返されます。final RemoteCalculator statelessRemoteCalculator = (RemoteCalculator) context.lookup( "ejb:/jboss-as-ejb-remote-app/CalculatorBean!" + RemoteCalculator.class.getName() );
final RemoteCalculator statelessRemoteCalculator = (RemoteCalculator) context.lookup( "ejb:/jboss-as-ejb-remote-app/CalculatorBean!" + RemoteCalculator.class.getName() );Copy to Clipboard Copied! Toggle word wrap Toggle overflow セッション Bean の JNDI 名は特別な構文によって定義されます。呼び出しメソッド
プロキシ Bean オブジェクトを取得したため、リモートビジネスインターフェースに含まれるすべてのメソッドを呼び出しすることができます。int a = 204; int b = 340; System.out.println("Adding " + a + " and " + b + " via the remote stateless calculator deployed on the server"); int sum = statelessRemoteCalculator.add(a, b); System.out.println("Remote calculator returned sum = " + sum);int a = 204; int b = 340; System.out.println("Adding " + a + " and " + b + " via the remote stateless calculator deployed on the server"); int sum = statelessRemoteCalculator.add(a, b); System.out.println("Remote calculator returned sum = " + sum);Copy to Clipboard Copied! Toggle word wrap Toggle overflow メソッド呼び出し要求が実行されるサーバー上で、プロキシ Bean がメソッド呼び出し要求をセッション Bean へ渡します。結果はプロキシ Bean へ返され、プロキシ Bean によって結果が呼び出し側へ返されます。プロキシ Bean とリモートセッション Bean 間の通信は呼び出し側に透過的です。
3.2.9. EJB 2.x の変更 リンクのコピーリンクがクリップボードにコピーされました!
3.2.9.1. EJB 2.x を使用するアプリケーションの更新 リンクのコピーリンクがクリップボードにコピーされました!
手順3.26 JBoss Enterprise Application Platform 6 で EJB 2.x を起動する
JNDI 名前空間の新しいルールを使用するようコードを変更する
EJB 3.0 と同様に、EJB 2.x でも完全な JNDI プレフィックスを使用する必要があります。新しい JNDI 名前空間ルールやコード例の詳細は 「アプリケーションの JNDI 名前空間名の更新」 を参照してください。以前のリリースから JNDI 名前空間を更新する方法を表す例は 「以前のリリースにおける JNDI 名前空間の例、また JBoss Enterprise Application Platform 6 での名前空間の指定方法」 にあります。JBoss AOP インターセプターの置換
JBoss AOP (Aspect Oriented Programming) は JBoss Enterprise Application Platform 6 には含まれていません。以前のリリースでは、JBoss AOP は EJB コンテナによって使用されていましたが、Enterprise Application Platform 6 では EJB コンテナは新しいメカニズムを使用します。アプリケーションが JBoss AOP を使用する場合、次のようにアプリケーションコードを変更する必要があります。ejb3-interceptors-aop.xmlで設定された標準的な EJB3 設定は、サーバー設定ファイルで設定されるようになりました。スタンドアロンサーバーの場合、このファイルはstandalone/configuration/standalone.xmlファイルになります。サーバーが管理ドメインで実行されている場合はdomain/configuration/domain.xmlファイルになります。- AOP インターセプターを EJB レイヤーへ統合するアプリケーションは、 EJB3 インターセプターと CDI を使用するよう再設計する必要があります。サーバー側のインターセプターは EJB3 インターセプターへ変更することができますが、Enterprise Application Platform 6 ではクライアント側のインターセプターがありません。
jboss-web.xmlファイル記述子の変更各<ejb-ref>に対する<jndi-name>を変更し、新しい JNDI 完全修飾ルックアップ形式を使用するようにします。jboss.xmlデプロイメント記述子ファイルの置換Java Enterprise Edition (EE) によって定義されるejb3-jar.xmlデプロイメント記述子によって提供される機能を上書きしたり追加するため、jboss.xmlはjboss-ejb3.xmlデプロイメント記述子に置き換えられました。この新ファイルはjboss.xmlとの互換性がないため、jboss.xmlはデプロイメントで無視されます。完全プロファイルでのサーバーの起動
EJB 2.x には Java Enterprise Edition 6 の完全プロファイルが必要となります。完全プロファイルで JBoss Enterprise Application Platform 6 を起動するには、サーバーの起動時に引数-c standalone-full.xmlをコマンドラインに渡します。
3.2.10. Seam 2.2 アプリケーションの移行 リンクのコピーリンクがクリップボードにコピーされました!
3.2.10.1. Seam 2.2 アーカイブの JBoss Enterprise Application Platform 6 への移行 リンクのコピーリンクがクリップボードにコピーされました!
Seam 2.2 アプリケーションを移行する際、データソースを設定し、モジュール依存関係を指定する必要があります。また、JBoss Enterprise Application Platform 6 に同梱されないアーカイブにアプリケーションの依存関係があるかを判断し、依存している JAR をアプリケーションの lib/ ディレクトリにコピーする必要があります。
重要
手順3.27 Seam 2.2 アーカイブの移行
データソース設定の更新
一部の Seam 2.2 の例は、java:/ExampleDSという名前のデフォルトの JDBC データソースを使用します。このデフォルトデータソースは JBoss Enterprise Application Platform 6 ではjava:jboss/datasources/ExampleDSに変更になりました。例のデータベースがアプリケーションによって使用される場合、以下の方法の 1 つ実行します。データソースの設定方法の詳細は 「DataSource 設定の更新」 を参照してください。- JBoss Enterprise Application Platform 6 に同梱されるデータベースの例を使用したい場合は、
META-INF/persistence.xmlファイルを変更し、既存のjta-data-source要素をデータベースのデータソース JNDI 名に置き換えます。<!-- <jta-data-source>java:/ExampleDS</jta-data-source> --> <jta-data-source>java:jboss/datasources/ExampleDS</jta-data-source>
<!-- <jta-data-source>java:/ExampleDS</jta-data-source> --> <jta-data-source>java:jboss/datasources/ExampleDS</jta-data-source>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 既存のデータベースを維持したい場合は、データソースの定義を
EAP_HOME/standalone/configuration/standalone.xmlファイルに追加することができます。以下の定義は JBoss Enterprise Application Platform 6 で定義されるデフォルトの HSQL データソースのコピーになります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - jbossadmin コマンドラインインターフェースを使用してデータソースの定義を追加することも可能です。データソースを追加するために使用しなければならない構文の例は次の通りです。行の最後にある "\" はコマンドが次の行に続くことを表しています。
例3.1 データソース定義を追加する構文の例
EAP_HOME/bin/jboss-cli --connect [standalone@localhost:9999 /] data-source add --name=ExampleDS --jndi-name=java:/ExampleDS \ --connection-url=jdbc:h2:mem:test;DB_CLOSE_DELAY=-1 --driver-name=h2 \ --user-name=sa --password=sa$ EAP_HOME/bin/jboss-cli --connect [standalone@localhost:9999 /] data-source add --name=ExampleDS --jndi-name=java:/ExampleDS \ --connection-url=jdbc:h2:mem:test;DB_CLOSE_DELAY=-1 --driver-name=h2 \ --user-name=sa --password=saCopy to Clipboard Copied! Toggle word wrap Toggle overflow
必要な依存関係の追加
Seam 2.2 アプリケーションは JSF 1.2 を使用するため、JSF 1.2 モジュールの依存関係を追加し、 JSF 2.0 モジュールを除外する必要があります。これを実行するには、以下のデータが格納される EAR のMETA-INF/ディレクトリにjboss-deployment-structure.xmlファイルを作成する必要があります。アプリケーションがサードパーティーのロギングフレームワークを使用する場合は、 「ロギング依存関係の編集」 に記載されている依存関係を追加する必要があります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 外部フレームワークまたは他の場所より依存するアーカイブをコピーする
Seam 2.2 アプリケーションが Hibernate 3.x を使用する場合でも、JBoss Enterprise Application Platform 6 にパッケージ化されている Hibernate 4 モジュールを使用してアプリケーションを実行することが可能ですが、存在しない Hibernate 3.x クラスがあるため、以前の Hibernate JAR を 1 つ以上/libディレクトリへコピーする必要がある場合があります。Hibernate クラスを示すClassNotFoundExceptionsやClassCastExceptionsが発生した場合、次のようにMETA-INF/jboss-deployment-structure.xmlのデプロイメントセクションにある Hibernate モジュールを除外する必要があることがあります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Seam 2.2 JNDI エラーのデバッグおよび解決
Seam 2.2 アプリケーションを移行する時に次のようなjavax.naming.NameNotFoundExceptionエラーがログに記録されることがあります。コード全体の JNDI ルックアップを変更したくない場合、次のようにアプリケーションのjavax.naming.NameNotFoundException: Name 'jboss-seam-booking' not found in context ''
javax.naming.NameNotFoundException: Name 'jboss-seam-booking' not found in context ''Copy to Clipboard Copied! Toggle word wrap Toggle overflow components.xmlファイルを変更することができます。既存の core-init 要素の置き換え
最初に、次のように既存の core-init 要素を置き換える必要があります。<!-- <core:init jndi-pattern="jboss-seam-booking/#{ejbName}/local" debug="true" distributable="false"/> --> <core:init debug="true" distributable="false"/><!-- <core:init jndi-pattern="jboss-seam-booking/#{ejbName}/local" debug="true" distributable="false"/> --> <core:init debug="true" distributable="false"/>Copy to Clipboard Copied! Toggle word wrap Toggle overflow サーバーログでの JNDI バインディング INFO メッセージの検索
次に、アプリケーションがデプロイされた時にサーバーログに出力された JNDI バインディング INFO メッセージを探します。以下のメッセージと似ているものが JNDI バインディングメッセージです。Copy to Clipboard Copied! Toggle word wrap Toggle overflow component 要素の追加
ログの各 JNDI バインディング INFO メッセージに対して、一致するcomponent要素をcomponents.xmlファイルに追加します。<component class="org.jboss.seam.example.booking.AuthenticatorAction" jndi-name="java:app/jboss-seam-booking.jar/AuthenticatorAction" />
<component class="org.jboss.seam.example.booking.AuthenticatorAction" jndi-name="java:app/jboss-seam-booking.jar/AuthenticatorAction" />Copy to Clipboard Copied! Toggle word wrap Toggle overflow
移行の問題に関するデバッグや解決方法の詳細は 「移行の問題のデバッグと解決」 を参照してください。
Seam 2.2 アーカイブが JBoss Enterprise Application Platform 6 上にデプロイされ、正常に実行されます。
3.2.10.2. Seam 2.2 アーカイブの移行の問題 リンクのコピーリンクがクリップボードにコピーされました!
- Seam 2.2 Drools と Java 7 の互換性がない
- Seam 2.2 Drools と Java 7 は互換性がなく、エラー org.drools.RuntimeDroolsException: value '1.7' is not a valid language level が発生します。
- Seam 2.2.5 の署名された
cglib.jarによって Spring の例が動作しない - Enterprise Application Platform 5 の Seam 2.2.5 に含まれる署名された
cglib.jarを使用して Spring の例が実行されると、次のルート原因で実行に失敗します。java.lang.SecurityException: class "org.jboss.seam.example.spring.UserService$$EnhancerByCGLIB$$7d6c3d12"'s signer information does not match signer information of other classes in the same package
java.lang.SecurityException: class "org.jboss.seam.example.spring.UserService$$EnhancerByCGLIB$$7d6c3d12"'s signer information does not match signer information of other classes in the same packageCopy to Clipboard Copied! Toggle word wrap Toggle overflow この問題を回避するには、次のようにcglib.jarを無署名にします。zip -d $SEAM_DIR/lib/cglib.jar META-INF/JBOSSCOD\* - Seambay の例が
NotLoggedInExceptionによって失敗する - SOAPRequestHandler のメッセージを処理する際に SOAP メッセージのヘッダーが null であるため、conversation ID が設定されないことがこの問題の原因です。この問題を回避するには、https://issues.jboss.org/browse/JBPAPP-8376 の記述通りに
org.jboss.seam.webservice.SOAPRequestHandler.handleOutboundを上書きします。 - Seambay の例が
UnsupportedOperationException: no transaction によって失敗する - JBoss Enterprise Application Platform 6 における UserTransaction の JNDI 名の変更がこのバグの原因です。この問題を回避するには https://issues.jboss.org/browse/JBPAPP-8322 の記述通りに
org.jboss.seam.transaction.Transaction.getUserTransactionを上書きします。 - Seambay の例が
NotLoggedInExceptionによって失敗する - SOAPRequestHandler のメッセージを処理する際に SOAP メッセージのヘッダーが null であるため、conversation ID が設定されないことがこの問題の原因です。この問題を回避するには、https://issues.jboss.org/browse/JBPAPP-8376 の記述通りに
org.jboss.seam.webservice.SOAPRequestHandler.handleOutboundを上書きします。 - Tasks の例が
org.jboss.resteasy.spi.UnhandledException: Unable to unmarshall request body をスローする - このバグの原因は Enterprise Application Platform 5.1.2 に含まれる seam-resteasy-2.2.5 と、JBoss Enterprise Application Platform 6 に含まれる RESTEasy 2.3.1.GA の互換性がないことです。この問題を回避するには、https://issues.jboss.org/browse/JBPAPP-8315 の通り
jboss-deployment-structure.xmlを使用してメインデプロイメントより resteasy-jaxrs、resteasy-jettison-provider、resteasy-jaxb-provider を除外し、jboss-seam-tasks.warより resteasy-jaxrs、resteasy-jettison-provider、resteasy-jaxb-provider、resteasy-yaml-provider を除外します。その後、EAR に Seam 2.2 とバンドルされる RESTEasy ライブラリが含まれるようにする必要があります。 - AJAX の要求中に
org.jboss.seam.core.SynchronizationInterceptorとステートフルコンポーネントインスタンスの EJB ロックがデッドロックする - 「Caused by javax.servlet.ServletException with message: "javax.el.ELException: /main.xhtml @36,71 value="#{hotelSearch.pageSize}": org.jboss.seam.core.LockTimeoutException: could not acquire lock on @Synchronized component: hotelSearch」が含まれるエラーページまたは同様のエラーメッセージが表示されます。Seam 2 はステートフルセッション Bean (SFSB) ロックの外部で異なるスコープにて独自のロッキングを行うことが問題となります。そのため、同じトランザクションでスレッドが EJB へ 2 回アクセスすると、最初の呼び出しの後に seam ロックではなく SFSB ロックを取得します。その後、2 つ目のスレッドは seam ロックを取得でき、EJB ロックをヒットし待機します。最初のスレッドが 2 回目の呼び出しを実行しようとすると、seam 2 インターセプター上でブロックし、デッドロックが発生します。Java EE 5 では平行アクセスが行われると即座に例外がスローされましたが、Java EE 6 ではこの挙動が変更されました。この問題を回避するには EJB に @AccessTimeout(0) を追加します。これにより、この状態に陥った時に即座に
ConcurrentAccessExceptionがスローされるようになります。 - Dvdstore の例の注文作成が
javax.ejb.EJBTransactionRolledbackExceptionによって失敗する - dvdstore の例が次のエラーを表示します。
JBAS011437: Found extended persistence context in SFSB invocation call stack but that cannot be used because the transaction already has a transactional context associated with it. This can be avoided by changing application code, either eliminate the extended persistence context or the transactional context. See JPA spec 2.0 section 7.6.3.1.
JBAS011437: Found extended persistence context in SFSB invocation call stack but that cannot be used because the transaction already has a transactional context associated with it. This can be avoided by changing application code, either eliminate the extended persistence context or the transactional context. See JPA spec 2.0 section 7.6.3.1.Copy to Clipboard Copied! Toggle word wrap Toggle overflow この問題は JPA 仕様の変更が原因です。この問題を修正するには、CheckoutActionクラスとShowOrdersActionクラスの永続コンテキストをtransactionalに変更し、エンティティーマネージャーのマージ操作をcancelOrderおよびdetailOrderメソッドで使用します。 - JBoss Cache の Seam キャッシュプロバイダーを Enterprise Application Platform 6 で使用できない
- JBoss Cache は Enterprise Application Platform 6 ではサポートされていません。そのため、JBoss Cache の Seam キャッシュプロバイダーはによりアプリケーションサーバーの Seam アプリケーションで失敗します。
java.lang.NoClassDefFoundError: org/jboss/util/xml/JBossEntityResolver
java.lang.NoClassDefFoundError: org/jboss/util/xml/JBossEntityResolverCopy to Clipboard Copied! Toggle word wrap Toggle overflow - Enterprise Application Platform 6 における JPA エンティティに対する Hibernate 3.3.x の自動スキャンの問題
- この問題を修正するには、すべてのエンティティークラスの一覧を手作業で persistence.xml ファイルに追加します。例は次の通りです。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2.11. Spring アプリケーションの移行 リンクのコピーリンクがクリップボードにコピーされました!
3.2.11.1. Spring アプリケーションの移行 リンクのコピーリンクがクリップボードにコピーされました!
3.2.12. 移行に影響するその他の変更 リンクのコピーリンクがクリップボードにコピーされました!
3.2.12.1. 移行に影響する可能性があるその他の変更について理解する リンクのコピーリンクがクリップボードにコピーされました!
3.2.12.2. Maven プラグイン名の変更 リンクのコピーリンクがクリップボードにコピーされました!
jboss-maven-plugin は更新されておらず、 Enterprise Application Platform 6 では動作しません。org.jboss.as.plugins:jboss-as-maven-plugin を使用して正しいディレクトリをデプロイする必要があります。
3.2.12.3. クライアントアプリケーションの変更 リンクのコピーリンクがクリップボードにコピーされました!
jboss-client.jar に変更され、JBOSS_HOME/bin/client/ ディレクトリにあります。この JAR は JBOSS_HOME/client/jbossall-client.jar に置き換わるもので、リモートクライアントから Enterprise Application Platform 6 に接続するために必要なすべての依存関係が含まれています。
第4章 ツールとヒント リンクのコピーリンクがクリップボードにコピーされました!
4.1. 移行に役立つリソース リンクのコピーリンクがクリップボードにコピーされました!
4.1.1. 移行に役立つリソース リンクのコピーリンクがクリップボードにコピーされました!
- ツール
- 設定変更の一部を自動化するのに役立つツールが複数あります。詳細は 「移行に便利なツールについて理解する」 を参照してください。
- デバッグのヒント
- アプリケーションの移行時に発生する問題やエラーの最も一般的な原因と解決法については 「移行の問題のデバッグと解決」を参照してください。
- 移行の例
- JBoss Enterprise Application Platform 6 へ移行されたアプリケーションの例は 「アプリケーション例の移行の確認」を参照してください。
4.1.2. 移行に便利なツールについて理解する リンクのコピーリンクがクリップボードにコピーされました!
移行に便利なツールは複数あります。これらのツールとその説明の一覧は次の通りです。
- Tattletale
- モジュラークラスローディングの変更に伴い、アプリケーション依存関係を検索し、修正する必要があります。Tattletale は依存するモジュールの名前を特定し、アプリケーションに対して設定 XML を生成する時に便利なツールです。
- IronJacamar 移行ツール
- JBoss Enterprise Application Platform 6 ではデータソースとリソースアダプターは個別のファイルに設定されていません。データソースとリソースアダプターはサーバー設定ファイルに定義され、新しいスキーマを使用します。IronJacamar 移行ツールは以前の設定を JBoss Enterprise Application Platform 6 が想定する形式に変換する時に便利です。
4.1.3. Tattletale を用いたアプリケーション依存関係の検索 リンクのコピーリンクがクリップボードにコピーされました!
JBoss Enterprise Application Platform 6 のモジュラークラスローディングの変更に伴い、アプリケーションを移行する時に JBoss ログに ClassNotFoundException または ClassCastException トレースが記録されることがあります。このエラーを解決するには、例外が指定するクラスが含まれる JAR を探す必要があります。
jboss-deployment-structure.xml ファイルが含まれるようにすることが可能です。
手順4.1 アプリケーション依存関係を検索するため Tattletale をインストールし実行する
注記
4.1.4. Tattletale のダウンロードとインストール リンクのコピーリンクがクリップボードにコピーされました!
手順4.2
- http://sourceforge.net/projects/jboss/files/JBoss%20Tattletale より Tattletale バージョン 1.2.0.Beta2 またはそれ以降のバージョンをダウンロードします。
- 希望のディレクトリにファイルを展開します。
- 次のように
TATTLETALE_HOME/jboss-tattletale.propertiesファイルを変更します。ee6とas7をprofilesプロパティーに追加します。profiles=java5, java6, ee6, as7
profiles=java5, java6, ee6, as7Copy to Clipboard Copied! Toggle word wrap Toggle overflow scanとreportsプロパティーをアンコメントします。
注記
4.1.5. Tattletale レポートの作成および確認 リンクのコピーリンクがクリップボードにコピーされました!
手順4.3
- 次のコマンドを実行して Tattletale レポートを作成します。
java -jarTATTLETALE_HOME/tattletale.jarAPPLICATION_ARCHIVEOUTPUT_DIRECTORYFor example:java -jar tattletale-1.2.0.Beta2/tattletale.jar applications/jboss-seam-booking.ear output-results/ - ブラウザーで
OUTPUT_DIRECTORY/index.htmlファイルを開き、「Reports」セクション下の「JBoss EAP 6」をクリックします。- 左側の列にはアプリケーションによって使用されるアーカイブが一覧表示されます。ARCHIVE_NAME リンクをクリックし、場所やマニュフェスト情報、含まれるクラスなどアーカイブの詳細を表示します。
- 右側の列にある
jboss-deployment-structure.xmlリンクは、左側の列に名前が表示されているアーカイブのモジュール依存関係を指定する方法を表示します。このリンクをクリックし、アーカイブのデプロイメント依存関係モジュール情報を定義する方法を確認します。
注記
4.1.6. IronJacamar ツールを使用してデータソースとリソースアダプターの設定を移行する リンクのコピーリンクがクリップボードにコピーされました!
以前のバージョンのアプリケーションサーバーでは、ファイル名が *-ds.xml で終わるファイルを使用してデータソースとリソースアダプターが設定されデプロイされました。IronJacamar 1.1 ディストリビューションには、これらの設定ファイルを JBoss Enterprise Application Platform 6 が想定する形式に変換できるツールが含まれています。このツールは以前のリリースよりソースの設定ファイルを解析し、XML 設定を作成してファイルを新しい形式で出力します。この XML は JBoss Enterprise Application Platform 6 のサーバー設定ファイルにある正しいサブシステム下にコピーしたり貼り付けすることができます。このツールは最大限努力して以前の属性や要素を新しい形式に変換しますが、生成されたファイルに変更を追加する必要がある場合があります。
手順4.4 IronJacamar 移行ツールのインストールと実行
注記
4.1.7. IronJacamar 移行ツールのダウンロードとインストール リンクのコピーリンクがクリップボードにコピーされました!
注記
手順4.5
- IronJacamar 1.1 またはそれ以降のディストリビューションを http://www.jboss.org/ironjacamar/downloads/ よりダウンロードします。
- 希望のディレクトリにダウンロードしたファイルを展開します。
- IronJacamar ディストリビューションのコンバータースクリプト探します。
- Linux のスクリプトは
IRONJACAMAR_HOME/doc/as/converter.shにあります。 - Windows のバッチファイルは
IRONJACAMAR_HOME/doc/as/converter.batにあります。
注記
4.1.8. IronJacamar 移行ツールを使用したデータソース設定ファイルの変換 リンクのコピーリンクがクリップボードにコピーされました!
手順4.6
- コマンドラインを開き、
IRONJACAMAR_HOME/docs/as/ディレクトリへ移動します。 - 次のコマンドを入力してコンバータースクリプトを実行します。
- Linux の場合:
./converter.sh -dsSOURCE_FILETARGET_FILE - Microsoft Windows の場合:
./converter.bat -dsSOURCE_FILETARGET_FILE
SOURCE_FILEは以前のリリースのデータソース -ds.xml ファイルです。TARGET_FILEに新しい設定が含まれます。例えば、カレントディレクトリにあるjboss-seam-booking-ds.xmlデータソース設定ファイルを変換する場合は以下を入力します。- Linux の場合:
./converter.sh -dsjboss-seam-booking-ds.xmlnew-datasource-config.xml - Microsoft Windows の場合:
./converter.bat -dsjboss-seam-booking-ds.xmlnew-datasource-config.xml
データソース変換のパラメーターは-dsになります。 - 目的のファイルより
<datasource>要素をコピーし、<subsystem xmlns="urn:jboss:domain:datasources:1.0"><datasources>要素下のサーバー設定ファイルに貼り付けます。- 管理ドメインで実行されている場合は、XML を
EAP_HOME/domain/configuration/domain.xmlファイルへコピーします。 - スタンドアロンサーバーとして実行されている場合は、XML を
EAP_HOME/standalone/configuration/standalone.xmlファイルへコピーします。
- 新しい設定ファイルに生成された XML の変更JBoss Enterprise Application Platform 5.x に同梱される Seam 2.2 の Booking 例に対する
jboss-seam-booking-ds.xmlデータソース設定ファイルの例は次の通りです。以下はコンバータースクリプトを実行して生成された設定ファイルになります。生成されたファイルにはCopy to Clipboard Copied! Toggle word wrap Toggle overflow <driver-class>要素が含まれます。JBoss Enterprise Application Platform 6 では<driver>を使用してドライバークラスを定義する方法が推奨されます。<driver-class>要素がコメントアウトされ、対応する<driver>要素が追加された JBoss Enterprise Application Platform 6 の設定ファイルにある XML は次のようになります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
注記
4.1.9. IronJacamar 移行ツールを使用したリソースアダプター設定ファイルの変換 リンクのコピーリンクがクリップボードにコピーされました!
手順4.7
- コマンドラインを開き、
IRONJACAMAR_HOME/docs/as/ディレクトリへ移動します。 - 次のコマンドを入力してコンバータースクリプトを実行します。
- Linux の場合:
./converter.sh -raSOURCE_FILETARGET_FILE - Microsoft Windows の場合:
./converter.bat -raSOURCE_FILETARGET_FILE
SOURCE_FILEは以前のリリースのリソースアダプター -ds.xml ファイルです。\TARGET_FILEに新しい設定が含まれます。例えば、カレントディレクトリにあるmttestadapter-ds.xmlリソースアダプター設定ファイルを変換する場合は以下を入力します。- Linux の場合:
./converter.sh -ramttestadapter-ds.xmlnew-adapter-config.xml - Microsoft Windows の場合:
./converter.bat -ramttestadapter-ds.xmlnew-adapter-config.xml
リソースアダプター変換のパラメーターは-raになります。 - 目的のファイルより
<resource-adapters>要素全体をコピーし、<subsystem xmlns="urn:jboss:domain:resource-adapters:1.0">要素下のサーバー設定ファイルに貼り付けます。- 管理ドメインで実行されている場合は、XML を
EAP_HOME/domain/configuration/domain.xmlファイルへコピーします。 - スタンドアロンサーバーとして実行されている場合は、XML を
EAP_HOME/standalone/configuration/standalone.xmlファイルへコピーします。
- 新しい設定ファイルに生成された XML の変更以下は JBoss Enterprise Application Platform 5.x TestSuite からの
mttestadapter-ds.xmlリソースアダプター設定ファイルの例になります。以下はコンバータースクリプトを実行して生成された設定ファイルになります。生成された XML にある class-name 属性値の "FIXME_MCF_CLASS_NAME" を、管理された接続ファクトリーの正しいクラス名に置き換えます。この例では "org.jboss.test.jca.adapter.TestManagedConnectionFactory" に置き換えます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow <class-name>要素値へ変更が加えられた JBoss Enterprise Application Platform 6 設定ファイルの XML は次のようになります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
注記
4.2. 移行の問題のデバッグ リンクのコピーリンクがクリップボードにコピーされました!
4.2.1. 移行の問題のデバッグと解決 リンクのコピーリンクがクリップボードにコピーされました!
4.2.2. ClassNotFoundExceptions および NoClassDefFoundErrors のデバッグと解決 リンクのコピーリンクがクリップボードにコピーされました!
通常、ClassNotFoundExceptions は未解決の依存関係が原因で発生します。そのため、他のモジュール上で依存関係を明示的に定義するか、外部ソースより JAR をコピーする必要があります。
手順4.8
- 最初に 「JBoss モジュール依存関係の検索」 の手順を実行します。
- 見つからないクラスのモジュールがない場合は 「以前のインストールでの JAR の検索」 の通りに JAR を探します。
4.2.3. JBoss モジュール依存関係の検索 リンクのコピーリンクがクリップボードにコピーされました!
EAP_HOME/modules/ ディレクトリ内で ClassNotFoundException によって指定されたクラスが含まれるモジュールを探します。クラスのモジュールを見つけた場合は、マニフェストエントリーへの依存関係を追加する必要があります。
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.Log
from [Module "deployment.TopicIndex.war:main" from Service Module Loader]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:188)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.Log
from [Module "deployment.TopicIndex.war:main" from Service Module Loader]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:188)
手順4.9
- 最初にクラスの明白なモジュールがあるかを判断します。
EAP_HOME/modules/ディレクトリへ移動し、ClassNotFoundExceptionで名前付けされたクラスと一致するモジュールパスを探します。この例では、モジュール下にorg/apache/commons/logging/のモジュールパスがあります。EAP_HOME/modules/org/apache/commons/logging/main/module.xmlファイルを開き、モジュール名を探します。この例では org.apache.commons.logging になります。MANIFEST.MFファイルの Dependencies にモジュール名を追加します。Manifest-Version: 1.0 Dependencies: org.apache.commons.logging
Manifest-Version: 1.0 Dependencies: org.apache.commons.loggingCopy to Clipboard Copied! Toggle word wrap Toggle overflow
- クラスの明白なモジュールパスがない場合、依存関係を他の場所で探す必要があることがあります。
- Tattletale レポートで
ClassNotFoundExceptionによって名前付けされたクラスを探します。 EAP_HOME/modulesディレクトリで JAR が含まれているモジュールを探し、前の手順の通りにモジュール名を探します。
4.2.4. 以前のインストールでの JAR の検索 リンクのコピーリンクがクリップボードにコピーされました!
lib/ ディレクトリで JAR を探します。
ClassNotFoundException トレースが記録されているとします。
Caused by: java.lang.NoClassDefFoundError: org/hibernate/validator/ClassValidator at java.lang.Class.getDeclaredMethods0(Native Method)
Caused by: java.lang.NoClassDefFoundError: org/hibernate/validator/ClassValidator at java.lang.Class.getDeclaredMethods0(Native Method)
- ターミナルを開き、
EAP5_HOME/ディレクトリへ移動します。 - コマンドを実行します。
grep 'org.hibernate.validator.ClassValidator' `find . \-name '*.jar'` - 複数の結果が表示されることもあります。その場合、必要な JAR は次の通りです。
Binary file ./jboss-eap-5.1/seam/lib/hibernate-validator.jar matches
Binary file ./jboss-eap-5.1/seam/lib/hibernate-validator.jar matchesCopy to Clipboard Copied! Toggle word wrap Toggle overflow - この JAR をアプリケーションの
lib/ディレクトリへコピーします。多数の JAR が必要であることが判明した場合、クラスのモジュールを定義した方が簡単でしょう。クラスのモジュールを定義する方法は、JBoss Enterprise Application Platform 6 開発ガイドの「アプリケーションの開発」の章に記載されているモジュールに関する説明を参照してください。 - アプリケーションを再ビルドし、再デプロイします。
4.2.5. ClassCastExceptions のデバッグと解決 リンクのコピーリンクがクリップボードにコピーされました!
手順4.10
ClassNotFoundExceptionによって名前付けされたクラスが含まれる JAR をすべて見つけるため、アプリケーションを検索します。クラスに対して定義されたモジュールがある場合、アプリケーションの WAR や EAR より重複する JAR を探し、削除します。- クラスが含まれる JBoss モジュールを探し、
MANIFEST.MFファイルまたはjboss-deployment-structure.xmlファイルに依存関係を明示的に定義します。詳細は、JBoss Enterprise Application Platform 6 開発ガイドの「クラスローディングとモジュール」の章にある「クラスローディングとサブデプロイメント」を参照してください。 - 上記の手順に従っても解決されない場合、クラスローダーの情報をログに出力すると問題の原因を判断できることがあります。例えば、次の
ClassCastExceptionがログに記録されているとします。java.lang.ClassCastException: com.example1.CustomClass1 cannot be cast to com.example2.CustomClass2
java.lang.ClassCastException: com.example1.CustomClass1 cannot be cast to com.example2.CustomClass2Copy to Clipboard Copied! Toggle word wrap Toggle overflow - コードで
ClassCastExceptionによって名前付けされたクラスに対するクラスローダーの情報をログに出力します。例は次の通りです。logger.info("Class loader for CustomClass1: " + com.example1.CustomClass1.getClass().getClassLoader().toString()); logger.info("Class loader for CustomClass2: " + com.example2.CustomClass2.getClass().getClassLoader().toString());logger.info("Class loader for CustomClass1: " + com.example1.CustomClass1.getClass().getClassLoader().toString()); logger.info("Class loader for CustomClass2: " + com.example2.CustomClass2.getClass().getClassLoader().toString());Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ログの情報にはどのモジュールがクラスをロードするかが記載されています。アプリケーションに基づき、競合する JAR を削除または移動する必要があります。
4.2.6. DuplicateServiceExceptions のデバッグと解決 リンクのコピーリンクがクリップボードにコピーされました!
- 生成される Web コンテキストと WAR コンテキストが一意になるよう、JAR ファイルの名前を WAR とは異なる名前に変更します。
<context-root>要素をjboss-web.xmlファイルに提供します。<context-root>要素をjboss-webservices.xmlファイルに提供します。- WAR の
<context-root>要素をapplication.xmlファイルでカスタマイズします。
4.2.7. JBoss Seam のデバッグページエラーのデバッグと解決 リンクのコピーリンクがクリップボードにコピーされました!
図4.1 JBoss Seam デバッグページ
手順4.11
- このページの
Componentセクションを拡大し、org.jboss.seam.caughtExceptionコンポーネントを探します。 - 原因とスタックトレースが欠落している依存関係を示しているはずです。
図4.2 コンポーネント
org.jboss.seam.caughtExceptionの情報 - 「ClassNotFoundExceptions および NoClassDefFoundErrors のデバッグと解決」 に説明されている手法を使用してモジュール依存関係を解決します。上記の例では、
org.slf4jをMANIFEST.MFに追加するのが最も簡単な解決方法になります。Manifest-Version: 1.0 Dependencies: org.slf4j
Manifest-Version: 1.0 Dependencies: org.slf4jCopy to Clipboard Copied! Toggle word wrap Toggle overflow モジュールの依存関係をjboss-deployment-structure.xmlファイルに追加して解決する方法もあります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.3. アプリケーション例の移行の確認 リンクのコピーリンクがクリップボードにコピーされました!
4.3.1. アプリケーション例の移行の確認 リンクのコピーリンクがクリップボードにコピーされました!
JBoss Enterprise Application Platform 6 へ移行された JBoss Enterprise Application Platform 5.x のアプリケーションの例は次の通りです。リンクをクリックすると、特定アプリケーションの変更内容の詳細を確認できます。
4.3.2. Seam 2.2. JPA 例の JBoss Enterprise Application Platform 6 への移行 リンクのコピーリンクがクリップボードにコピーされました!
下記のタスクリストには、Seam 2.2 JPA の例を JBoss Enterprise Application Platform 6 へ正常に移行するために必要な変更の概要が記載されています。このアプリケーション例は JBoss Enterprise Application Platform 5.1 ディストリビューションの EAP5.1_HOME/jboss-eap-5.1/seam/examples/jpa/ 下にあります。
重要
手順4.12 タスク
jboss-web.xml ファイルを削除します。
jboss-seam-jpa.war/WEB-INF/ディレクトリよりjboss-web.xmlファイルを削除します。jboss-web.xmlに定義されるクラスローディングがデフォルトの挙動になります。persistence.xml ファイルの廃止されたプロパティーの削除
jboss-seam-jpa.war/WEB-INF/classes/META-INF/persistence.xmlファイルのhibernate.cache.provider_classプロパティーを削除またはコメントアウトします。<!-- <property name="hibernate.cache.provider_class" value="org.hibernate.cache.HashtableCacheProvider"/> -->
<!-- <property name="hibernate.cache.provider_class" value="org.hibernate.cache.HashtableCacheProvider"/> -->Copy to Clipboard Copied! Toggle word wrap Toggle overflow Seam 2.2 依存関係の追加
下記の JAR を Seam 2.2 ディストリビューションのライブラリであるSEAM_HOME/lib/からjboss-seam-jpa.war/WEB-INF/lib/ディレクトリへコピーします。- slf4j-api.jar
- slf4j-log4j12.jar
- hibernate-entitymanager.jar
- hibernate-core.jar
- hibernate-annotations.jar
- hibernate-commons-annotations.jar
- hibernate-validator.jar
残りの依存関係を追加するため jboss-deployment-structure ファイルを作成する
次のデータが含まれるjboss-deployment-structure.xmlファイルをjboss-seam-jpa.war/WEB-INF/フォルダーに作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Seam 2.2 の JPA 例が JBoss Enterprise Application Platform 6 上にデプロイされ、正常に実行されます。
4.3.3. Seam 2.2. Booking 例の JBoss Enterprise Application Platform 6 への移行 リンクのコピーリンクがクリップボードにコピーされました!
Seam 2.2 Booking EAR の移行は Seam 2.2 JPA WAR 例の移行よりも複雑です。Seam 2.2 JPA WAR 例の移行に関するドキュメントは 「Seam 2.2. JPA 例の JBoss Enterprise Application Platform 6 への移行」 を参照してください。アプリケーションを移行するには、以下を実行する必要があります。
- デフォルトの JSF 2 ではなく JSF 1.2 を初期化する。
- JBoss Enterprise Application Platform 6 に同梱される Hibernate JAR ではなく、古いバージョンの Hibernate JAR をバンドルする。
- 新しい Java EE 6 の移植可能な JNDI 構文を使用するよう JNDI バインディングを変更する。
重要
手順4.13 Seam 2.2 Booking 例の移行
jboss-deployment-structure.xmlファイルの作成jboss-seam-booking.ear/META-INF/にjboss-deployment-structure.xmlという名前の新しいファイルを作成し、次の内容を追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow キャッシュプロバイダークラスの
hibernateプロパティーの削除jboss-seam-booking.jar/META-INF/persistence.xmlファイルのキャッシュプロバイダークラスに対する hibernate プロパティーを削除またはコメントアウトします。<!-- <property name="hibernate.cache.provider_class" value="org.hibernate.cache.HashtableCacheProvider"/> -->
<!-- <property name="hibernate.cache.provider_class" value="org.hibernate.cache.HashtableCacheProvider"/> -->Copy to Clipboard Copied! Toggle word wrap Toggle overflow Seam 2.2 ディストリビューションより JAR をコピー
次の JAR を Seam 2.2 ディストリビューションのEAP5.x_HOME/jboss-eap5.x/seam/lib/からjboss-seam-booking.ear/libディレクトリへコピーします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow JNDI ルックアップ名の変更
jboss-seam-booking.war/WEB-INF/components.xmlファイルの JNDI ルックアップ文字列を変更します。新しい移植可能な JNDI のルールが導入されたため、JBoss Enterprise Application Platform 6 は 移植可能な JNDI の構文ルールを使用して EJB をバインドします。JBoss Enterprise Application Platform 5 で使用された単一の jndiPattern を使用することはできません。 JBoss Enterprise Application Platform 6 ではアプリケーションの EJB JNDI ルックアップ文字列を次のように変更する必要があります。Seam 2.2 フレームワーク EJB の JNDI ルックアップ文字列は次のように変更する必要があります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のいずれかの方法を実行します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow コンポーネント要素の追加
各 EJB に対するjndi-nameをWEB-INF/components.xmlに追加することができます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - JNDI パスを指定する
@JNDIName(value="")アノテーションを追加してコードを変更することができます。変更されたステートレスセッション Bean のコードは次の通りです。この処理の詳細は Seam 2.2 の参考文献を参照してください。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Seam 2.2 の Booking アプリケーションが JBoss Enterprise Application Platform 6 上にデプロイされ、正常に実行されます。
4.3.4. Seam 2.2 Booking アーカイブの JBoss Enterprise Application 6 への移行: 手順説明 リンクのコピーリンクがクリップボードにコピーされました!
EAP6_HOME/standalone/deployments ディレクトリにデプロイされ、変更はアーカイブの変更のみとなります。これにより、問題の発生や解決時にアーカイブ内にある XML ファイルの変更が容易になります。
重要
手順4.14 アプリケーションの移行
- 「Seam 2.2 Booking アーカイブのデプロイメントエラーや例外のデバッグおよび解決」 に従ってデプロイメントエラーや例外のデバッグおよび解決を行います。
- 「Seam 2.2 Booking アーカイブのランタイムエラーや例外のデバッグおよび解決」 に従ってランタイムエラーや例外のデバッグおよび解決を行います。
「Seam 2.2 Booking アプリケーションの移行時に加えられる変更概要の確認」 に従って変更の概要を確認します。
4.3.5. JBoss Enterprise Application Platform 5.1 バージョンの Seam 2.2 Booking アプリケーションのビルドおよびデプロイ リンクのコピーリンクがクリップボードにコピーされました!
手順4.15 EAR のビルドとデプロイ
- EAR をビルドします。
cd /EAP5_HOME/jboss-eap5.1/seam/examples/booking ANT_HOME/ant explode
$ cd /EAP5_HOME/jboss-eap5.1/seam/examples/booking $ ANT_HOME/ant explodeCopy to Clipboard Copied! Toggle word wrap Toggle overflow - EAR を EAP6_HOME デプロイメントディレクトリへコピーします。
cp -r EAP5_HOME/jboss-eap-5.1/seam/examples/booking/exploded-archives/jboss-seam-booking.ear EAP6_HOME/standalone/deployments/ cp -r EAP5_HOME/jboss-eap-5.1/seam/examples/booking/exploded-archives/jboss-seam-booking.war EAP6_HOME/standalone/deployments/jboss-seam.ear cp -r EAP5_HOME/jboss-eap-5.1/seam/examples/booking/exploded-archives/jboss-seam-booking.jar EAP6_HOME/standalone/deployments/jboss-seam.ear
$ cp -r EAP5_HOME/jboss-eap-5.1/seam/examples/booking/exploded-archives/jboss-seam-booking.ear EAP6_HOME/standalone/deployments/ $ cp -r EAP5_HOME/jboss-eap-5.1/seam/examples/booking/exploded-archives/jboss-seam-booking.war EAP6_HOME/standalone/deployments/jboss-seam.ear $ cp -r EAP5_HOME/jboss-eap-5.1/seam/examples/booking/exploded-archives/jboss-seam-booking.jar EAP6_HOME/standalone/deployments/jboss-seam.earCopy to Clipboard Copied! Toggle word wrap Toggle overflow - JBoss Enterprise Application Platform 6 サーバーを起動し、ログをチェックします。ログには以下が記録されているはずです。
INFO [org.jboss.as.deployment] (DeploymentScanner-threads - 1) Found jboss-seam-booking.ear in deployment directory. To trigger deployment create a file called jboss-seam-booking.ear.dodeployINFO [org.jboss.as.deployment] (DeploymentScanner-threads - 1) Found jboss-seam-booking.ear in deployment directory. To trigger deployment create a file called jboss-seam-booking.ear.dodeployCopy to Clipboard Copied! Toggle word wrap Toggle overflow jboss-seam-booking.ear.dodeployという名前の空のファイルを作成し、EAP6_HOME/standalone/deploymentsディレクトリへコピーします。本アプリケーションの移行中に、このファイルを複数回デプロイメントディレクトリへコピーする必要があるため、簡単に見つかる場所へ保存するようにしてください。デプロイ中であることを示す次のメッセージがログに記録されるはずです。INFO [org.jboss.as.server.deployment] (MSC service thread 1-1) Starting deployment of "jboss-seam-booking.ear" INFO [org.jboss.as.server.deployment] (MSC service thread 1-3) Starting deployment of "jboss-seam-booking.jar" INFO [org.jboss.as.server.deployment] (MSC service thread 1-6) Starting deployment of "jboss-seam.jar" INFO [org.jboss.as.server.deployment] (MSC service thread 1-2) Starting deployment of "jboss-seam-booking.war"
INFO [org.jboss.as.server.deployment] (MSC service thread 1-1) Starting deployment of "jboss-seam-booking.ear" INFO [org.jboss.as.server.deployment] (MSC service thread 1-3) Starting deployment of "jboss-seam-booking.jar" INFO [org.jboss.as.server.deployment] (MSC service thread 1-6) Starting deployment of "jboss-seam.jar" INFO [org.jboss.as.server.deployment] (MSC service thread 1-2) Starting deployment of "jboss-seam-booking.war"Copy to Clipboard Copied! Toggle word wrap Toggle overflow この時点で最初のデプロイメントエラーが発生します。次の手順で各問題を確認し、デバッグおよび解決方法について説明します。デプロイメントの問題をデバッグおよび解決する方法については 「Seam 2.2 Booking アーカイブのデプロイメントエラーや例外のデバッグおよび解決」 を参照してください。前のトピックに戻るには 「Seam 2.2 Booking アーカイブの JBoss Enterprise Application 6 への移行: 手順説明」 をクリックしてください。
4.3.6. Seam 2.2 Booking アーカイブのデプロイメントエラーや例外のデバッグおよび解決 リンクのコピーリンクがクリップボードにコピーされました!
重要
手順4.16 デプロイメントエラーや例外のデバッグおよび解決
- 問題 - java.lang.ClassNotFoundException: javax.faces.FacesExceptionアプリケーションをデプロイすると、ログに次のエラーが記録されます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ログの解説ClassNotFoundException は見つからない依存関係があることを示しています。この例では、クラス
javax.faces.FacesExceptionが見つからないため、依存関係を明示的に追加する必要があります。解決方法見つからないクラスと一致するパスを探し、EAP6_HOME/modules ディレクトリ内でそのクラスのモジュール名を見つけます。この例では、一致するモジュールが 2 つあります。
両モジュールのモジュール名は同じjavax/faces/api/main javax/faces/api/1.2
javax/faces/api/main javax/faces/api/1.2Copy to Clipboard Copied! Toggle word wrap Toggle overflow javax.faces.apiですが、メインディレクトリにあるモジュールは JSF 2.0 向けで、1.2 ディレクトリにあるものは JSF 1.2 向けです。一致するモジュールが 1 つのみの場合、MANIFEST.MFファイルを作成し、モジュールの依存関係を追加します。この例では、メインディレクトリにある 2.0 バージョンではなく JSF 1.2 バージョンを使用したいため、使用したい方を指定し、使用したくない方を除外します。それには、EAR のMETA-INF/ディレクトリに次のデータが含まれるjboss-deployment-structure.xmlファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow deploymentセクションに JSF 1.2 モジュールのjavax.faces.apiに対する依存関係を追加します。また、JSF 1.2 モジュールに対する依存関係を WAR のサブデプロイメントセクションに追加し、 JSF 2.0 のモジュールを除外します。standalone/deployments/jboss-seam-booking.ear.failedファイルを削除して同じディレクトリに空のjboss-seam-booking.ear.dodeployファイルを作成し、アプリケーションを再デプロイします。 - 問題 - java.lang.ClassNotFoundException: org.apache.commons.logging.Logアプリケーションをデプロイすると、次のエラーがログに記録されます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ログの解説ClassNotFoundExceptionは見つからない依存関係があることを示しています。この例では、クラスorg.apache.commons.logging.Logが見つからないため、依存関係を明示的に追加する必要があります。解決方法見つからないクラスと一致するパスを探し、
EAP6_HOME/modules/ディレクトリ内でそのクラスのモジュール名を見つけます。この例では、パスorg/apache/commons/logging/と一致するモジュールが 1 つあります。モジュール名は「org.apache.commons.logging」です。jboss-deployment-structure.xmlファイルを変更し、モジュールの依存関係をファイルのデプロイメントセクションに追加します。jboss-deployment-structure.xml は次のようになるはずです。<module name="org.apache.commons.logging" export="true"/>
<module name="org.apache.commons.logging" export="true"/>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow standalone/deployments/jboss-seam-booking.ear.failedファイルを削除して同じディレクトリに空のjboss-seam-booking.ear.dodeployファイルを作成し、アプリケーションを再デプロイします。 - 問題 - java.lang.ClassNotFoundException: org.dom4j.DocumentExceptionアプリケーションをデプロイすると、次のエラーがログに記録されます。
ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/seam-booking]] (MSC service thread 1-3) Exception sending context initialized event to listener instance of class org.jboss.seam.servlet.SeamListener: java.lang.NoClassDefFoundError: org/dom4j/DocumentException (... additional logs removed ...) Caused by: java.lang.ClassNotFoundException: org.dom4j.DocumentException from [Module "deployment.jboss-seam-booking.ear.jboss-seam.jar:main" from Service Module Loader]ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/seam-booking]] (MSC service thread 1-3) Exception sending context initialized event to listener instance of class org.jboss.seam.servlet.SeamListener: java.lang.NoClassDefFoundError: org/dom4j/DocumentException (... additional logs removed ...) Caused by: java.lang.ClassNotFoundException: org.dom4j.DocumentException from [Module "deployment.jboss-seam-booking.ear.jboss-seam.jar:main" from Service Module Loader]Copy to Clipboard Copied! Toggle word wrap Toggle overflow ログの解説ClassNotFoundExceptionは見つからない依存関係があることを示しています。この例では、クラスorg.dom4j.DocumentExceptionが見つかりません。解決方法org/dom4j/DocumentExceptionを探し、EAP6_HOME/modules/ディレクトリ内でモジュール名を見つけます。モジュール名は 「org.dom4j」です。jboss-deployment-structure.xmlファイルを変更し、ファイルのデプロイメントセクションにモジュールの依存関係を追加します。jboss-deployment-structure.xml ファイルは次のようになるはずです。<module name="org.dom4j" export="true"/>
<module name="org.dom4j" export="true"/>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow standalone/deployments/jboss-seam-booking.ear.failedファイルを削除して同じディレクトリに空のjboss-seam-booking.ear.dodeployファイルを作成し、アプリケーションを再デプロイします。 - 問題 - java.lang.ClassNotFoundException: org.hibernate.validator.InvalidValueアプリケーションをデプロイするとログに次のエラーが記録されます。
ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/seam-booking]] (MSC service thread 1-6) Exception sending context initialized event to listener instance of class org.jboss.seam.servlet.SeamListener: java.lang.RuntimeException: Could not create Component: org.jboss.seam.international.statusMessages (... additional logs removed ...) Caused by: java.lang.ClassNotFoundException: org.hibernate.validator.InvalidValue from [Module "deployment.jboss-seam-booking.ear.jboss-seam.jar:main" from Service Module Loader]ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/seam-booking]] (MSC service thread 1-6) Exception sending context initialized event to listener instance of class org.jboss.seam.servlet.SeamListener: java.lang.RuntimeException: Could not create Component: org.jboss.seam.international.statusMessages (... additional logs removed ...) Caused by: java.lang.ClassNotFoundException: org.hibernate.validator.InvalidValue from [Module "deployment.jboss-seam-booking.ear.jboss-seam.jar:main" from Service Module Loader]Copy to Clipboard Copied! Toggle word wrap Toggle overflow ログの解説ClassNotFoundExceptionは見つからない依存関係があることを示しています。この例では、クラスorg.hibernate.validator.InvalidValueが見つかりません。解決方法モジュール「org.hibernate.validator」は存在しますが JAR に
org.hibernate.validator.InvalidValueクラスが含まれていないため、モジュールの依存関係を追加してもこの問題は解決しません。この例では、クラスが含まれる JAR は JBoss Enterprise Application Platform 5.1 デプロイメントの一部になります。EAP5_HOME/jboss-eap-5.1/seam/lib/ディレクトリに見つからないクラスが含まれている JAR を探します。これを実行するには、コンソールを開いて以下を入力します。結果は次のようになります。cd EAP5_HOME/jboss-eap-5.1/seam/lib grep 'org.hibernate.validator.InvalidValue' `find . -name '*.jar'
$ cd EAP5_HOME/jboss-eap-5.1/seam/lib $ grep 'org.hibernate.validator.InvalidValue' `find . -name '*.jar'Copy to Clipboard Copied! Toggle word wrap Toggle overflow この場合、Binary file ./hibernate-validator.jar matches Binary file ./test/hibernate-all.jar matches
$ Binary file ./hibernate-validator.jar matches $ Binary file ./test/hibernate-all.jar matchesCopy to Clipboard Copied! Toggle word wrap Toggle overflow hibernate-validator.jarをjboss-seam-booking.ear/lib/ディレクトリにコピーします。cp EAP5_HOME/jboss-eap-5.1/seam/lib/hibernate-validator.jar jboss-seam-booking.ear/lib
$ cp EAP5_HOME/jboss-eap-5.1/seam/lib/hibernate-validator.jar jboss-seam-booking.ear/libCopy to Clipboard Copied! Toggle word wrap Toggle overflow standalone/deployments/jboss-seam-booking.ear.failedファイルを削除して同じディレクトリに空のjboss-seam-booking.ear.dodeployファイルを作成し、アプリケーションを再デプロイします。 - 問題 - java.lang.InstantiationException: org.jboss.seam.jsf.SeamApplicationFactoryアプリケーションをデプロイすると、次のエラーがログに記録されます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ログの解説com.sun.faces.config.ConfigurationExceptionとjava.lang.InstantiationExceptionは依存関係の問題があることを示しています。この例では、原因は明らかではありません。解決方法com.sun.facesクラスが含まれるモジュールを探す必要があります。com.sun.facesモジュールは存在しませんが、com.sun.jsf-implモジュールが 2 つあります。1.2 ディレクトリのjsf-impl-1.2_13.jarを簡単にチェックすると、com.sun.facesクラスが含まれていることが分かります。javax.faces.FacesExceptionClassNotFoundExceptionの例と同様、メインディレクトリの JSF 2.0 バージョンではなく JFS 1.2 バージョンを使用したいため、使用したい方を指定し、使用したくない方を除外します。jboss-deployment-structure.xmlを変更し、ファイルのデプロイメントセクションにモジュールの依存関係を追加する必要があります。また、WAR のサブデプロイメントに追加し、JSF 2.0 モジュールを除外する必要もあります。ファイルは次のようになるはずです。Copy to Clipboard Copied! Toggle word wrap Toggle overflow standalone/deployments/jboss-seam-booking.ear.failedファイルを削除して同じディレクトリに空のjboss-seam-booking.ear.dodeployファイルを作成し、アプリケーションを再デプロイします。 - 問題 - java.lang.ClassNotFoundException: org.apache.commons.collections.ArrayStackアプリケーションをデプロイすると、次のエラーがログに記録されます。
ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/seam-booking]] (MSC service thread 1-1) Exception sending context initialized event to listener instance of class com.sun.faces.config.ConfigureListener: java.lang.RuntimeException: com.sun.faces.config.ConfigurationException: CONFIGURATION FAILED! org.apache.commons.collections.ArrayStack from [Module "deployment.jboss-seam-booking.ear:main" from Service Module Loader] (... additional logs removed ...) Caused by: java.lang.ClassNotFoundException: org.apache.commons.collections.ArrayStack from [Module "deployment.jboss-seam-booking.ear:main" from Service Module Loader]ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/seam-booking]] (MSC service thread 1-1) Exception sending context initialized event to listener instance of class com.sun.faces.config.ConfigureListener: java.lang.RuntimeException: com.sun.faces.config.ConfigurationException: CONFIGURATION FAILED! org.apache.commons.collections.ArrayStack from [Module "deployment.jboss-seam-booking.ear:main" from Service Module Loader] (... additional logs removed ...) Caused by: java.lang.ClassNotFoundException: org.apache.commons.collections.ArrayStack from [Module "deployment.jboss-seam-booking.ear:main" from Service Module Loader]Copy to Clipboard Copied! Toggle word wrap Toggle overflow ログの解説ClassNotFoundExceptionは見つからない依存関係があることを示しています。この例では、クラスorg.apache.commons.collections.ArrayStackが見つかりません。解決方法org/apache/commons/collectionsのパスを探し、EAP6_HOME/modules/ディレクトリ内でモジュール名を見つけます。モジュール名は 「org.apache.commons.collections」です。jboss-deployment-structure.xml を変更し、ファイルのデプロイメントセクションにモジュールの依存関係を追加します。jboss-deployment-structure.xml ファイルは次のようになるはずです。<module name="org.apache.commons.collections" export="true"/>
<module name="org.apache.commons.collections" export="true"/>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow standalone/deployments/jboss-seam-booking.ear.failedファイルを削除して同じディレクトリに空のjboss-seam-booking.ear.dodeployファイルを作成し、アプリケーションを再デプロイします。 - 問題 - Services with missing/unavailable dependenciesアプリケーションをデプロイすると、次のエラーがログに記録されます。
ERROR [org.jboss.as.deployment] (DeploymentScanner-threads - 2) {"Composite operation failed and was rolled back. Steps that failed:" => {"Operation step-2" => {"Services with missing/unavailable dependencies" => ["jboss.deployment.subunit.\"jboss-seam-booking.ear\".\"jboss-seam-booking.jar\".component.AuthenticatorAction.START missing [ jboss.naming.context.java.comp.jboss-seam-booking.\"jboss-seam-booking.jar\".AuthenticatorAction.\"env/org.jboss.seam.example.booking.AuthenticatorAction/em\" ]","jboss.deployment.subunit.\"jboss-seam-booking.ear\".\"jboss-seam-booking.jar\".component.HotelSearchingAction.START missing [ jboss.naming.context.java.comp.jboss-seam-booking.\"jboss-seam-booking.jar\".HotelSearchingAction.\"env/org.jboss.seam.example.booking.HotelSearchingAction/em\" ]"," (... additional logs removed ...) "jboss.deployment.subunit.\"jboss-seam-booking.ear\".\"jboss-seam-booking.jar\".component.BookingListAction.START missing [ jboss.naming.context.java.comp.jboss-seam-booking.\"jboss-seam-booking.jar\".BookingListAction.\"env/org.jboss.seam.example.booking.BookingListAction/em\" ]","jboss.persistenceunit.\"jboss-seam-booking.ear/jboss-seam-booking.jar#bookingDatabase\" missing [ jboss.naming.context.java.bookingDatasource ]"]}}}ERROR [org.jboss.as.deployment] (DeploymentScanner-threads - 2) {"Composite operation failed and was rolled back. Steps that failed:" => {"Operation step-2" => {"Services with missing/unavailable dependencies" => ["jboss.deployment.subunit.\"jboss-seam-booking.ear\".\"jboss-seam-booking.jar\".component.AuthenticatorAction.START missing [ jboss.naming.context.java.comp.jboss-seam-booking.\"jboss-seam-booking.jar\".AuthenticatorAction.\"env/org.jboss.seam.example.booking.AuthenticatorAction/em\" ]","jboss.deployment.subunit.\"jboss-seam-booking.ear\".\"jboss-seam-booking.jar\".component.HotelSearchingAction.START missing [ jboss.naming.context.java.comp.jboss-seam-booking.\"jboss-seam-booking.jar\".HotelSearchingAction.\"env/org.jboss.seam.example.booking.HotelSearchingAction/em\" ]"," (... additional logs removed ...) "jboss.deployment.subunit.\"jboss-seam-booking.ear\".\"jboss-seam-booking.jar\".component.BookingListAction.START missing [ jboss.naming.context.java.comp.jboss-seam-booking.\"jboss-seam-booking.jar\".BookingListAction.\"env/org.jboss.seam.example.booking.BookingListAction/em\" ]","jboss.persistenceunit.\"jboss-seam-booking.ear/jboss-seam-booking.jar#bookingDatabase\" missing [ jboss.naming.context.java.bookingDatasource ]"]}}}Copy to Clipboard Copied! Toggle word wrap Toggle overflow ログの解説「Services with missing/unavailable dependencies」(見つからない/使用できない依存関係を持つサービス) のエラーが発生したら、「missing」の後の括弧内にある文字を確認してください。この場合では次のようになります。
「/em」はエンティティーマネージャーとデータソースの問題であることを示しています。missing [ jboss.naming.context.java.comp.jboss-seam-booking.\"jboss-seam-booking.jar\".AuthenticatorAction.\"env/org.jboss.seam.example.booking.AuthenticatorAction/em\" ]
missing [ jboss.naming.context.java.comp.jboss-seam-booking.\"jboss-seam-booking.jar\".AuthenticatorAction.\"env/org.jboss.seam.example.booking.AuthenticatorAction/em\" ]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 解決方法JBoss Enterprise Application Platform 6 ではデータソースの設定が変更になったため、
standalone/configuration/standalone.xmlファイルに定義する必要があります。JBoss Enterprise Application Platform 6 には、既にstandalone.xmlファイルに定義されているデータベースの例が含まれているため、 このアプリケーションでデータベースの例を使用するようpersistence.xmlファイルを変更します。standalone.xmlファイルを見るとデータベースの例のjndi-nameはjava:jboss/datasources/ExampleDSであることが分かります。jboss-seam-booking.jar/META-INF/persistence.xmlファイルを変更して既存のjta-data-source要素をコメントアウトし、以下のように置き換えます。<!-- <jta-data-source>java:/bookingDatasource</jta-data-source> --> <jta-data-source>java:jboss/datasources/ExampleDS</jta-data-source>
<!-- <jta-data-source>java:/bookingDatasource</jta-data-source> --> <jta-data-source>java:jboss/datasources/ExampleDS</jta-data-source>Copy to Clipboard Copied! Toggle word wrap Toggle overflow standalone/deployments/jboss-seam-booking.ear.failedファイルを削除して同じディレクトリに空のjboss-seam-booking.ear.dodeployファイルを作成し、アプリケーションを再デプロイします。 - 問題 - java.lang.ClassNotFoundException: org.hibernate.cache.HashtableCacheProviderアプリケーションをデプロイすると、ログに次のエラーが記録されます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ログの解説ClassNotFoundExceptionは見つからない依存関係があることを示しています。この例では、クラスorg.hibernate.cache.HashtableCacheProviderが見つかりません。解決方法org.hibernate.cache のモジュールはありません。この例では、クラスが含まれる JAR は JBoss Enterprise Application Platform 5.1 デプロイメントの一部になります。
EAP5_HOME/jboss-eap-5.1/seam/lib/ディレクトリに見つからないクラスが含まれている JAR を探します。これを実行するには、コンソールを開いて以下を入力します。結果は次のようになります。cd EAP5_HOME/jboss-eap-5.1/seam/lib grep 'org.hibernate.validator.InvalidValue' `find . -name '*.jar'`
$ cd EAP5_HOME/jboss-eap-5.1/seam/lib $ grep 'org.hibernate.validator.InvalidValue' `find . -name '*.jar'`Copy to Clipboard Copied! Toggle word wrap Toggle overflow この場合、Binary file ./hibernate-core.jar matches Binary file ./test/hibernate-all.jar matches
Binary file ./hibernate-core.jar matches Binary file ./test/hibernate-all.jar matchesCopy to Clipboard Copied! Toggle word wrap Toggle overflow hibernate-core.jarをjboss-seam-booking.ear/lib/ディレクトリにコピーします。cp EAP5_HOME/jboss-eap-5.1/seam/lib/hibernate-core.jar jboss-seam-booking.ear/lib
cp EAP5_HOME/jboss-eap-5.1/seam/lib/hibernate-core.jar jboss-seam-booking.ear/libCopy to Clipboard Copied! Toggle word wrap Toggle overflow standalone/deployments/jboss-seam-booking.ear.failedファイルを削除して同じディレクトリに空のjboss-seam-booking.ear.dodeployファイルを作成し、アプリケーションを再デプロイします。 - 問題 - java.lang.ClassCastException: org.hibernate.cache.HashtableCacheProviderアプリケーションをデプロイすると、次のエラーがログに記録されます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ログの解説ClassCastExceptionは複数の問題が原因で発生する可能性があります。ログでこの例外を見てみると、クラスorg.hibernate.cache.HashtableCacheProviderがorg.hibernate.cache.spi.CacheProviderを拡張し、拡張するクラス以外のクラスローダーによってロードされたように見受けられます。org.hibernate.cache.HashtableCacheProviderクラスはhibernate-core.jarにあり、アプリケーションクラスローダーによってロードされます。このクラスを拡張するクラスであるorg.hibernate.cache.spi.CacheProviderはorg/hibernate/main/hibernate-core-4.0.0.Beta1.jarにあり、モジュールによって暗黙的にロードされます。これはあからさまではありませんが Hibernate 4 の変更が原因で、この問題はHashtableCacheProviderクラスを他のパッケージへ移動したことによる後方互換性の問題が原因となっています。このクラスはorg.hibernate.cacheパッケージからorg.hibernate.cache.internalパッケージに移動されました。persistence.xmlファイルよりhibernate.cache.provider_classプロパティーを削除しないと、Seam アプリケーションが以前の Hibernate ライブラリをバンドルするよう強制されるため、ClassCastExceptionsが発生します。JBoss Enterprise Application Platform 6 では HashtableCacheProvider を使用せずに Infinispan を使用するようにしてください。解決方法JBoss Enterprise Application Platform 6 では、
jboss-seam-booking.jar/META-INF/persistence.xmlファイルのhibernate.cache.provider_class propertyを次のようにコメントアウトします。<!-- <property name="hibernate.cache.provider_class" value="org.hibernate.cache.HashtableCacheProvider"/> -->
<!-- <property name="hibernate.cache.provider_class" value="org.hibernate.cache.HashtableCacheProvider"/> -->Copy to Clipboard Copied! Toggle word wrap Toggle overflow standalone/deployments/jboss-seam-booking.ear.failedファイルを削除して同じディレクトリに空のjboss-seam-booking.ear.dodeployファイルを作成し、アプリケーションを再デプロイします。 - この時点で、アプリケーションはエラーを引き起こさずにデプロイされますが、ブラウザーで URL http://localhost:8080/seam-booking/ へアクセスし、アカウントへログインしようとするとランタイムエラー 「The page isn't redirecting properly」(ページが正しくリダイレクトしません) が発生します。次の手順でランタイムエラーのデバッグおよび解決方法について学びましょう。ランタイムの問題をデバッグおよび解決する方法については 「Seam 2.2 Booking アーカイブのランタイムエラーや例外のデバッグおよび解決」 を参照してください。前のトピックに戻るには 「Seam 2.2 Booking アーカイブの JBoss Enterprise Application 6 への移行: 手順説明」 をクリックしてください。
4.3.7. Seam 2.2 Booking アーカイブのランタイムエラーや例外のデバッグおよび解決 リンクのコピーリンクがクリップボードにコピーされました!
重要
手順4.17 ランタイムエラーや例外のデバッグおよび解決
- 問題 - javax.naming.NameNotFoundException: Name 'jboss-seam-booking' not found in context ''ブラウザーで URL http://localhost:8080/seam-booking/ にアクセスすると 「The page isn't redirecting properly」と表示され、ログに次のエラーが記録されます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ログの解説NameNotFoundExceptionは JNDI の命名の問題であることを示しています。JBoss Enterprise Application Platform 6 では JNDI の命名ルールが変更になったため、新しいルールに従ってルックアップ名を変更する必要があります。解決方法この問題をデバッグするには、サーバーログを追跡し、問題発生前に使用された JNDI バインディングを確認します。サーバーログには以下が記録されているはずです。
セッション Bean ごとに 1つとなる合計 8 つの INFO JNDI バインディング (RegisterAction、 BookingListAction, HotelBookingAction、 AuthenticatorAction、 ChangePasswordAction、 HotelSearchingAction、 EjbSynchronizations、 TimerServiceDispatcher) がログに記録されています。新しい JNDI バインディングを使用するよう、WAR のCopy to Clipboard Copied! Toggle word wrap Toggle overflow lib/components.xmlファイルを変更する必要があります。ログの EJB JNDI バインディングはすべて「java:app/jboss-seam-booking.jar」で始まることに注意してください。 次のようにcore:init要素を置き換えます。次に、EjbSynchronizations と TimerServiceDispatcher JNDI バインディングを追加する必要があります。ファイルに次のコンポーネント要素を追加します。<!-- <core:init jndi-pattern="jboss-seam-booking/#{ejbName}/local" debug="true" distributable="false"/> --> <core:init jndi-pattern="java:app/jboss-seam-booking.jar/#{ejbName}" debug="true" distributable="false"/><!-- <core:init jndi-pattern="jboss-seam-booking/#{ejbName}/local" debug="true" distributable="false"/> --> <core:init jndi-pattern="java:app/jboss-seam-booking.jar/#{ejbName}" debug="true" distributable="false"/>Copy to Clipboard Copied! Toggle word wrap Toggle overflow components.xml ファイルは次のようになるはずです。<component class="org.jboss.seam.transaction.EjbSynchronizations" jndi-name="java:app/jboss-seam/EjbSynchronizations"/> <component class="org.jboss.seam.async.TimerServiceDispatcher" jndi-name="java:app/jboss-seam/TimerServiceDispatcher"/>
<component class="org.jboss.seam.transaction.EjbSynchronizations" jndi-name="java:app/jboss-seam/EjbSynchronizations"/> <component class="org.jboss.seam.async.TimerServiceDispatcher" jndi-name="java:app/jboss-seam/TimerServiceDispatcher"/>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow standalone/deployments/jboss-seam-booking.ear.failedファイルを削除して同じディレクトリに空のjboss-seam-booking.ear.dodeployファイルを作成し、アプリケーションを再デプロイします。 - ランタイムエラーの解決この時点で、アプリケーションはエラーを引き起こさずにデプロイされ実行されます。ブラウザーで URL http://localhost:8080/seam-booking/ にアクセスすると正常にログインすることができます。前のトピックに戻るには 「Seam 2.2 Booking アーカイブの JBoss Enterprise Application 6 への移行: 手順説明」 をクリックしてください。
4.3.8. Seam 2.2 Booking アプリケーションの移行時に加えられる変更概要の確認 リンクのコピーリンクがクリップボードにコピーされました!
重要
- EAR の
META-INF/ディレクトリにjboss-deployment-structure.xmlファイルを作成しました。ClassNotFoundExceptionsを解決するため、<dependencies>と<exclusions>を追加しました。このファイルには次のデータが含まれています。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ClassNotFoundExceptionsを解決するため、次の JAR をEAP5_HOME/jboss-eap-5.1/seam/lib/ディレクトリからjboss-seam-booking.ear/lib/ディレクトリへコピーしました。- hibernate-core.jar
- hibernate-validator.jar
- 次のように
jboss-seam-booking.jar/META-INF/persistence.xmlファイルを変更しました。- JBoss Enterprise Application Platform 6 に同梱されるデータベースの例を使用するよう
jta-data-source要素を変更しました。<!-- <jta-data-source>java:/bookingDatasource</jta-data-source> --> <jta-data-source>java:jboss/datasources/ExampleDS</jta-data-source>
<!-- <jta-data-source>java:/bookingDatasource</jta-data-source> --> <jta-data-source>java:jboss/datasources/ExampleDS</jta-data-source>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - hibernate.cache.provider_class プロパティーをコメントアウトしました。
<!-- <property name="hibernate.cache.provider_class" value="org.hibernate.cache.HashtableCacheProvider"/> -->
<!-- <property name="hibernate.cache.provider_class" value="org.hibernate.cache.HashtableCacheProvider"/> -->Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- 新しい JNDI バインディングを使用するよう、WAR の
lib/components.xmlファイルを変更しました。core:init既存要素を次のように置き換えました。<!-- <core:init jndi-pattern="jboss-seam-booking/#{ejbName}/local" debug="true" distributable="false"/> --> <core:init jndi-pattern="java:app/jboss-seam-booking.jar/#{ejbName}" debug="true" distributable="false"/><!-- <core:init jndi-pattern="jboss-seam-booking/#{ejbName}/local" debug="true" distributable="false"/> --> <core:init jndi-pattern="java:app/jboss-seam-booking.jar/#{ejbName}" debug="true" distributable="false"/>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - "EjbSynchronizations" および "TimerServiceDispatcher" JNDI バインディングのコンポーネント要素を追加しました。
<component class="org.jboss.seam.transaction.EjbSynchronizations" jndi-name="java:app/jboss-seam/EjbSynchronizations"/> <component class="org.jboss.seam.async.TimerServiceDispatcher" jndi-name="java:app/jboss-seam/TimerServiceDispatcher"/>
<component class="org.jboss.seam.transaction.EjbSynchronizations" jndi-name="java:app/jboss-seam/EjbSynchronizations"/> <component class="org.jboss.seam.async.TimerServiceDispatcher" jndi-name="java:app/jboss-seam/TimerServiceDispatcher"/>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第5章 Compiler Output リンクのコピーリンクがクリップボードにコピーされました!
Topic ID 4613, Revision 83970
- INFO: Assigned Writer: sgilda Common Names: Migration from Enterprise Application Platform 5, Migration from Previous Versions Content Warnings: Spelling Error Release: EAP 6 Beta Technologies: JAX-RS, RESTEasy Topic Types: Task Topic Lifecycle: IA Triage IA Priority: IA Low Priority Topic Lifecycle: IA Proposed Concerns: Application Development Topic Lifecycle: Written Topic Lifecycle: QE Pass
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 4887, Revision 72536
- INFO: Assigned Writer: sgilda Common Names: Migration from Enterprise Application Platform 5, Migration from Previous Versions Release: EAP 6 Beta Topic Types: Task Topic Lifecycle: IA Triage IA Priority: IA Low Priority Topic Lifecycle: IA Proposed Concerns: Application Development Concerns: Application or Service Deployment Topic Lifecycle: Written Topic Lifecycle: QE Pass
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 5616, Revision 84302
- INFO: Assigned Writer: sgilda Common Names: Migration from Enterprise Application Platform 5, Migration from Previous Versions Content Warnings: Spelling Error Release: EAP 6 Beta Topic Types: Task Topic Lifecycle: IA Triage IA Priority: IA Low Priority Concerns: Getting Started Topic Lifecycle: IA Proposed Concerns: Application Development Concerns: Application or Service Deployment Topic Lifecycle: Written Topic Lifecycle: QE Pass
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 4611, Revision 83968
- INFO: Assigned Writer: dmison Common Names: Application Server, Classloading, Migration from Previous Versions Content Warnings: Spelling Error Release: EAP 6 Alpha, EAP 6 Beta Technologies: JBoss Modules Topic Types: Concept IA Priority: IA Low Priority Topic Lifecycle: IA Proposed Concerns: Application Development Concerns: Application or Service Deployment Topic Lifecycle: Written Topic Lifecycle: QE Pass
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 4888, Revision 70485
- INFO: Assigned Writer: sgilda Common Names: Migration from Enterprise Application Platform 5, Migration from Previous Versions Release: EAP 6 Beta Topic Types: Task Topic Lifecycle: IA Triage IA Priority: IA Low Priority Topic Lifecycle: IA Proposed Concerns: Application Development Topic Lifecycle: Written Topic Lifecycle: QE Pass
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 4618, Revision 83973
- INFO: Assigned Writer: sgilda Common Names: Classloading, Migration from Enterprise Application Platform 5, Migration from Previous Versions Content Warnings: Spelling Error Release: EAP 6 Beta Technologies: JBoss Modules Topic Types: Task Topic Lifecycle: IA Triage IA Priority: IA Low Priority Topic Lifecycle: IA Proposed Concerns: Application Development Concerns: Troubleshooting Topic Lifecycle: Assigned Topic Lifecycle: Written Topic Lifecycle: QE Pass
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 7669, Revision 110276
- INFO: Assigned Writer: sgilda Common Names: Migration from Enterprise Application Platform 5, Migration from Previous Versions Concerns: Migration Release: EAP 6.0 Topic Types: Task Topic Lifecycle: IA Triage IA Priority: IA Low Priority Topic Lifecycle: IA Proposed Concerns: Application Development Topic Lifecycle: Assigned Topic Lifecycle: Written
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 5247, Revision 84154
- INFO: Assigned Writer: sgilda Common Names: Classloading, Migration from Enterprise Application Platform 5, Migration from Previous Versions Content Warnings: Spelling Error Release: EAP 6 Beta Technologies: JBoss Modules Topic Types: Task Topic Lifecycle: IA Triage IA Priority: IA Low Priority Concerns: Getting Started Topic Lifecycle: IA Proposed Concerns: Administration Concerns: Application Development Concerns: Application or Service Deployment Concerns: Troubleshooting Topic Lifecycle: Assigned Topic Lifecycle: Written Topic Lifecycle: QE Pass
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 7668, Revision 157979
- INFO: Assigned Writer: sgilda Common Names: Migration from Enterprise Application Platform 5 Concerns: Migration Content Warnings: Grammar Errors, Spelling Error Release: EAP 6.0.0 GA Topic Types: Task Topic Lifecycle: IA Triage IA Priority: IA Low Priority Topic Lifecycle: IA Proposed Concerns: Application Development Topic Lifecycle: Assigned Topic Lifecycle: Written
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 7671, Revision 150222
- INFO: Assigned Writer: sgilda Common Names: Java Database Connectivity (JDBC), Java Persistence API (JPA), Migration from Enterprise Application Platform 5 Concerns: Migration Release: EAP 6.0 Technologies: Hibernate, Hibernate Validator Topic Types: Task Topic Lifecycle: IA Triage IA Priority: IA Low Priority Topic Lifecycle: IA Proposed Concerns: Application Development Topic Lifecycle: Assigned Topic Lifecycle: Written
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 7670, Revision 133996
- INFO: Assigned Writer: sgilda Common Names: Classloading, Migration from Enterprise Application Platform 5, Migration from Previous Versions Concerns: Migration Content Warnings: Grammar Errors, Spelling Error Release: EAP 6.0 Topic Types: Task Topic Lifecycle: IA Triage IA Priority: IA Low Priority Topic Lifecycle: IA Proposed Concerns: Application Development Topic Lifecycle: Assigned Topic Lifecycle: Written
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 7667, Revision 110273
- INFO: Assigned Writer: sgilda Common Names: Migration from Enterprise Application Platform 5 Concerns: Migration Release: EAP 6.0 Topic Types: Overview Topic Lifecycle: IA Triage IA Priority: IA Low Priority Topic Lifecycle: IA Proposed Concerns: Application Development Topic Lifecycle: Assigned Topic Lifecycle: Written
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 10144, Revision 162981
- INFO: Assigned Writer: sgilda Common Names: Application Server, EJB, Migration from Enterprise Application Platform 5, Migration from Previous Versions Concerns: Migration Release: EAP 6.0.1 Technologies: JBoss EJB3 Topic Types: Task Topic Lifecycle: IA Triage IA Priority: IA Low Priority Topic Lifecycle: IA Proposed Concerns: Application Development Topic Lifecycle: Assigned Topic Lifecycle: Written
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 5241, Revision 66321
- INFO: Assigned Writer: sgilda Common Names: Migration from Enterprise Application Platform 5, Migration from Previous Versions, Security Release: EAP 6 Beta Topic Types: Task Topic Lifecycle: IA Triage IA Priority: IA Low Priority Topic Lifecycle: IA Proposed Concerns: Configuration Concerns: Application Development Concerns: Application or Service Deployment Topic Lifecycle: Assigned Topic Lifecycle: Written Topic Lifecycle: QE Pass
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 7880, Revision 75352
- INFO: Assigned Writer: sgilda Common Names: Migration from Enterprise Application Platform 5 Concerns: Migration Release: EAP 6 Beta Technologies: Hibernate Topic Types: Task Topic Lifecycle: IA Triage IA Priority: IA Low Priority Topic Lifecycle: IA Proposed Concerns: Application Development Concerns: Troubleshooting Topic Lifecycle: Assigned Topic Lifecycle: Written Topic Lifecycle: QE Pass
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 5615, Revision 76982
- INFO: Assigned Writer: sgilda Common Names: Migration from Enterprise Application Platform 5, Migration from Previous Versions Release: EAP 6 Beta Topic Types: Task Topic Lifecycle: IA Triage IA Priority: IA Low Priority Concerns: Getting Started Topic Lifecycle: IA Proposed Concerns: Configuration Concerns: Application Development Concerns: Application or Service Deployment Topic Lifecycle: Assigned Topic Lifecycle: Written Topic Lifecycle: QE Pass
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 7673, Revision 162834
- INFO: Assigned Writer: sgilda Common Names: Migration from Enterprise Application Platform 5, Migration from Previous Versions Concerns: Migration Release: EAP 6.0.0 GA Topic Types: Task Topic Lifecycle: IA Triage IA Priority: IA Low Priority Topic Lifecycle: IA Proposed Concerns: Application Development Topic Lifecycle: Assigned Topic Lifecycle: Written
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 9374, Revision 153089
- INFO: Assigned Writer: sgilda Common Names: Java Messaging Service (JMS), Migration from Enterprise Application Platform 5, Migration from Previous Versions Concerns: Migration Content Warnings: Spelling Error Release: EAP 6.0.0 GA, EAP 6.0.1 Technologies: HornetQ Topic Types: Task Topic Lifecycle: IA Triage IA Priority: IA Low Priority Topic Lifecycle: IA Proposed Concerns: Configuration Concerns: Administration Concerns: Application Development Topic Lifecycle: Assigned Topic Lifecycle: Written
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 7672, Revision 162834
- INFO: Assigned Writer: sgilda Common Names: Migration from Enterprise Application Platform 5, Migration from Previous Versions Concerns: Migration Release: EAP 6.0.0 GA Topic Types: Task Topic Lifecycle: IA Triage IA Priority: IA Low Priority Topic Lifecycle: IA Proposed Concerns: Application Development Topic Lifecycle: Assigned Topic Lifecycle: Written
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 5235, Revision 84149
- INFO: Assigned Writer: sgilda Common Names: Java Persistence API (JPA), Migration from Enterprise Application Platform 5, Migration from Previous Versions Content Warnings: Spelling Error Release: EAP 6 Beta Topic Types: Task Topic Lifecycle: IA Triage IA Priority: IA Low Priority Topic Lifecycle: IA Proposed Concerns: Application Development Topic Lifecycle: Written Topic Lifecycle: QE Pass
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 5718, Revision 84354
- INFO: Assigned Writer: sgilda Common Names: Java Database Connectivity (JDBC), Migration from Enterprise Application Platform 5, Migration from Previous Versions Content Warnings: Grammar Errors, Spelling Error Release: EAP 6 Beta Topic Types: Task Topic Lifecycle: IA Triage IA Priority: IA Low Priority Topic Lifecycle: IA Proposed Concerns: Configuration Concerns: Datasources Concerns: Application Development Topic Lifecycle: Assigned Topic Lifecycle: Written Topic Lifecycle: QE Pass
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 8831, Revision 77374
- INFO: Assigned Writer: sgilda Common Names: Java Persistence API (JPA), Migration from Enterprise Application Platform 5, Migration from Previous Versions Concerns: Migration Release: EAP 6.0 Technologies: Hibernate Topic Types: Task Topic Lifecycle: IA Triage IA Priority: IA Low Priority Topic Lifecycle: IA Proposed Concerns: Application Development Topic Lifecycle: Assigned Topic Lifecycle: Written
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 5719, Revision 84355
- INFO: Assigned Writer: dmison Common Names: EJB Content Warnings: Spelling Error Release: EAP 6 Alpha Technologies: JBoss EJB3 Topic Types: Task IA Priority: IA Low Priority Topic Lifecycle: IA Proposed Concerns: Application Development Topic Lifecycle: Written Topic Lifecycle: QE Fail
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 4370, Revision 83887
- INFO: Assigned Writer: dryan, sgilda Common Names: Java Messaging Service (JMS), Migration from Enterprise Application Platform 5, Migration from Previous Versions Content Warnings: Spelling Error Release: EAP 6 Alpha, EAP 6 Beta Technologies: HornetQ Topic Types: Task Topic Lifecycle: IA Proposed Concerns: Administration Topic Lifecycle: Approved Topic Lifecycle: Assigned Topic Lifecycle: Written Topic Lifecycle: QE Pass
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 11567, Revision 299164
- INFO: Assigned Writer: sgilda Common Names: Application Server, Classloading, Migration from Enterprise Application Platform 5, Migration from Previous Versions, Remoting Concerns: Migration Release: EAP 6.0.1 Technologies: JBoss Modules Topic Types: Task Topic Lifecycle: IA Triage IA Priority: IA Low Priority Concerns: Application Development Topic Lifecycle: Assigned Topic Lifecycle: Written
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 4642, Revision 40178
- INFO: Assigned Writer: sgilda Common Names: Java Naming and Directory Interface (JNDI), Migration, Migration from Enterprise Application Platform 5 Release: EAP 6 Beta Topic Types: Task Topic Lifecycle: IA Triage IA Priority: IA Low Priority Topic Lifecycle: IA Proposed Concerns: Application Development Topic Lifecycle: Written Topic Lifecycle: QE Pass
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 4914, Revision 84043
- INFO: Assigned Writer: sgilda Common Names: Classloading, Migration from Enterprise Application Platform 5, Migration from Previous Versions Content Warnings: Spelling Error Release: EAP 6 Beta Technologies: JBoss Modules Topic Types: Task Topic Lifecycle: IA Triage IA Priority: IA Low Priority Topic Lifecycle: IA Proposed Concerns: Application Development Concerns: Troubleshooting Topic Lifecycle: Written Topic Lifecycle: Edited Topic Lifecycle: QE Pass
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 4641, Revision 40178
- INFO: Assigned Writer: sgilda Common Names: Java Naming and Directory Interface (JNDI), Migration, Migration from Enterprise Application Platform 5 Release: EAP 6 Beta Topic Types: Task Topic Lifecycle: IA Triage IA Priority: IA Low Priority Topic Lifecycle: IA Proposed Concerns: Application Development Topic Lifecycle: Written Topic Lifecycle: QE Pass
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 4640, Revision 83980
- INFO: Assigned Writer: sgilda Common Names: Migration from Enterprise Application Platform 5, Migration from Previous Versions Content Warnings: Grammar Errors, Spelling Error Release: EAP 6 Beta Technologies: Hibernate Topic Types: Task Topic Lifecycle: IA Triage IA Priority: IA Low Priority Topic Lifecycle: IA Proposed Concerns: Configuration Concerns: Datasources Concerns: Application Development Topic Lifecycle: Written Topic Lifecycle: QE Pass
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 5327, Revision 66277
- INFO: Assigned Writer: sgilda Common Names: Migration from Enterprise Application Platform 5, Migration from Previous Versions Release: EAP 6 Beta Topic Types: Task Topic Lifecycle: IA Triage IA Priority: IA Low Priority Topic Lifecycle: IA Proposed Concerns: Configuration Concerns: Application Development Concerns: Application or Service Deployment Topic Lifecycle: Assigned Topic Lifecycle: Written Topic Lifecycle: QE Pass
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 4909, Revision 84038
- INFO: Assigned Writer: sgilda Common Names: Java Persistence API (JPA), Migration from Enterprise Application Platform 5, Migration from Previous Versions Content Warnings: Spelling Error Release: EAP 6 Beta Technologies: Hibernate Topic Types: Task Topic Lifecycle: IA Triage IA Priority: IA Low Priority Topic Lifecycle: IA Proposed Concerns: Configuration Concerns: Application Development Topic Lifecycle: Written Topic Lifecycle: Edited Topic Lifecycle: QE Pass
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 4910, Revision 84039
- INFO: Assigned Writer: sgilda Common Names: Migration from Enterprise Application Platform 5, Migration from Previous Versions Content Warnings: Spelling Error Release: EAP 6 Beta Technologies: JAX-WS Topic Types: Task Topic Lifecycle: IA Triage IA Priority: IA Low Priority Topic Lifecycle: IA Proposed Concerns: Application Development Concerns: Application or Service Deployment Concerns: Troubleshooting Topic Lifecycle: Assigned Topic Lifecycle: Written Topic Lifecycle: QE Pass
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 9154, Revision 152955
- INFO: Assigned Writer: sgilda Common Names: Application Server, High Availability (HA) Clustering, Migration from Enterprise Application Platform 5, Migration from Previous Versions Content Warnings: Spelling Error Release: EAP 6.0.1 Topic Types: Task Topic Lifecycle: IA Triage IA Priority: IA Low Priority Topic Lifecycle: IA Proposed Concerns: Configuration Concerns: Administration Concerns: Application Development Topic Lifecycle: Assigned Topic Lifecycle: Written
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 5578, Revision 80036
- INFO: Assigned Writer: sgilda Common Names: Migration from Enterprise Application Platform 5, Migration from Previous Versions Release: EAP 6 Beta Topic Types: Task Topic Lifecycle: IA Triage IA Priority: IA Low Priority Topic Lifecycle: IA Proposed Concerns: Application Development Topic Lifecycle: Written Topic Lifecycle: QE Pass
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 5576, Revision 84290
- INFO: Assigned Writer: sgilda Common Names: Migration from Enterprise Application Platform 5, Migration from Previous Versions Content Warnings: Grammar Errors, Spelling Error Release: EAP 6 Beta Topic Types: Task Topic Lifecycle: IA Triage IA Priority: IA Low Priority Topic Lifecycle: IA Proposed Concerns: Application Development Topic Lifecycle: Written Topic Lifecycle: QE Pass
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 5577, Revision 84291
- INFO: Assigned Writer: sgilda Common Names: Migration from Enterprise Application Platform 5, Migration from Previous Versions Content Warnings: Spelling Error Release: EAP 6 Beta Topic Types: Task Topic Lifecycle: IA Triage IA Priority: IA Low Priority Topic Lifecycle: IA Proposed Concerns: Application Development Topic Lifecycle: Written Topic Lifecycle: QE Pass
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 9039, Revision 152924
- INFO: Assigned Writer: sgilda Common Names: Migration from Enterprise Application Platform 5, Migration from Previous Versions Concerns: Migration Content Warnings: Spelling Error Release: EAP 6.0.0 GA Technologies: Hibernate Topic Types: Reference Topic Lifecycle: IA Triage IA Priority: IA Low Priority Concerns: Application Development Concerns: Troubleshooting Topic Lifecycle: Assigned Topic Lifecycle: Written
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 4944, Revision 84057
- INFO: Assigned Writer: sgilda Common Names: Migration from Enterprise Application Platform 5, Migration from Previous Versions Content Warnings: Spelling Error Release: EAP 6 Beta Technologies: Hibernate Topic Types: Task Topic Lifecycle: IA Triage IA Priority: IA Low Priority Topic Lifecycle: IA Proposed Concerns: Application Development Concerns: Application or Service Deployment Topic Lifecycle: Written Topic Lifecycle: Edited Topic Lifecycle: QE Pass
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 4945, Revision 84058
- INFO: Assigned Writer: sgilda Common Names: Migration from Enterprise Application Platform 5, Migration from Previous Versions, Security Content Warnings: Spelling Error Release: EAP 6 Beta Topic Types: Task Topic Lifecycle: IA Triage IA Priority: IA Low Priority Topic Lifecycle: IA Proposed Concerns: Application Development Topic Lifecycle: Written Topic Lifecycle: QE Pass
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 4601, Revision 299164
- INFO: Assigned Writer: sgilda Common Names: Classloading, Migration from Enterprise Application Platform 5, Migration from Previous Versions Content Warnings: Spelling Error Release: EAP 6.0.0 Beta Technologies: JBoss Modules Topic Types: Task Topic Lifecycle: IA Triage Concerns: Getting Started Topic Lifecycle: IA Proposed Concerns: Application Development Topic Lifecycle: Written Topic Lifecycle: QE Pass
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 4600, Revision 299164
- INFO: Assigned Writer: sgilda Common Names: Classloading, Migration from Enterprise Application Platform 5, Migration from Previous Versions Content Warnings: Spelling Error Release: EAP 6.0.0 Beta Topic Types: Task Topic Lifecycle: IA Triage Topic Lifecycle: IA Proposed Concerns: Application Development Topic Lifecycle: Assigned Topic Lifecycle: Written Topic Lifecycle: Edited Topic Lifecycle: QE Pass
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 4948, Revision 84061
- INFO: Assigned Writer: sgilda Common Names: High Availability (HA) Clustering, Migration from Enterprise Application Platform 5, Migration from Previous Versions Content Warnings: Spelling Error Release: EAP 6 Beta Topic Types: Task Topic Lifecycle: IA Triage IA Priority: IA Low Priority Topic Lifecycle: IA Proposed Concerns: Application Development Topic Lifecycle: Written Topic Lifecycle: Edited Topic Lifecycle: QE Pass
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 4602, Revision 74630
- INFO: Assigned Writer: sgilda Common Names: Migration from Enterprise Application Platform 5, Migration from Previous Versions Release: EAP 6 Beta Technologies: JBoss Modules Topic Types: Task Topic Lifecycle: IA Triage IA Priority: IA Low Priority Topic Lifecycle: IA Proposed Concerns: Application Development Concerns: Troubleshooting Topic Lifecycle: Written Topic Lifecycle: QE Pass
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 4949, Revision 78375
- INFO: Assigned Writer: sgilda Common Names: Migration from Enterprise Application Platform 5, Migration from Previous Versions Release: EAP 6 Beta Topic Types: Task Topic Lifecycle: IA Triage IA Priority: IA Low Priority Topic Lifecycle: IA Proposed Concerns: Application Development Concerns: Application or Service Deployment Topic Lifecycle: Assigned Topic Lifecycle: Written Topic Lifecycle: Edited Topic Lifecycle: QE Pass
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 8323, Revision 85677
- INFO: Assigned Writer: sgilda Common Names: Java Persistence API (JPA), Migration from Enterprise Application Platform 5 Content Warnings: Spelling Error Release: EAP 6 Beta Technologies: Hibernate Topic Types: Reference Topic Lifecycle: IA Triage IA Priority: IA Low Priority Topic Lifecycle: IA Proposed Concerns: Application Development Topic Lifecycle: Assigned Topic Lifecycle: Written Topic Lifecycle: QE Pass
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 4952, Revision 84064
- INFO: Assigned Writer: sgilda Common Names: Migration from Enterprise Application Platform 5, Migration from Previous Versions Content Warnings: Spelling Error Release: EAP 6 Beta Topic Types: Task Topic Lifecycle: IA Triage IA Priority: IA Low Priority Topic Lifecycle: IA Proposed Concerns: Application Development Topic Lifecycle: Written Topic Lifecycle: QE Pass
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 4953, Revision 40178
- INFO: Assigned Writer: sgilda Common Names: Classloading, Migration, Migration from Enterprise Application Platform 5 Release: EAP 6 Beta Technologies: JBoss Modules Topic Types: Task Topic Lifecycle: IA Triage IA Priority: IA Low Priority Topic Lifecycle: IA Proposed Concerns: Configuration Concerns: Application Development Concerns: Troubleshooting Topic Lifecycle: Assigned Topic Lifecycle: Written Topic Lifecycle: QE Pass
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 4958, Revision 84068
- INFO: Assigned Writer: sgilda Common Names: Migration from Enterprise Application Platform 5, Migration from Previous Versions Content Warnings: Grammar Errors, Spelling Error Release: EAP 6 Beta Topic Types: Task Topic Lifecycle: IA Triage IA Priority: IA Low Priority Topic Lifecycle: IA Proposed Concerns: Application Development Topic Lifecycle: Written Topic Lifecycle: QE Pass
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 4593, Revision 83957
- INFO: Assigned Writer: sgilda Common Names: Logging, Migration from Enterprise Application Platform 5, Migration from Previous Versions Content Warnings: Spelling Error Release: EAP 6 Beta Technologies: JBoss Logging Topic Types: Task Topic Lifecycle: IA Triage Topic Lifecycle: IA Proposed Concerns: Application Development Concerns: Application or Service Deployment Topic Lifecycle: Written Topic Lifecycle: Edited Topic Lifecycle: QE Pass
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 4592, Revision 83956
- INFO: Assigned Writer: sgilda Common Names: Migration from Enterprise Application Platform 5, Migration from Previous Versions Content Warnings: Grammar Errors, Spelling Error Release: EAP 6 Beta Topic Types: Task Topic Lifecycle: IA Triage Topic Lifecycle: IA Proposed Concerns: Web Development Concerns: Application Development Concerns: Application or Service Deployment Topic Lifecycle: Written Topic Lifecycle: Edited Topic Lifecycle: QE Pass
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 4595, Revision 83958
- INFO: Assigned Writer: sgilda Common Names: Classloading, Migration from Enterprise Application Platform 5, Migration from Previous Versions Content Warnings: Spelling Error Release: EAP 6 Beta Topic Types: Task Topic Lifecycle: IA Triage IA Priority: IA Low Priority Topic Lifecycle: IA Proposed Concerns: Configuration Concerns: Application Development Topic Lifecycle: Written Topic Lifecycle: QE Pass
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 4957, Revision 76999
- INFO: Assigned Writer: sgilda Common Names: Migration from Enterprise Application Platform 5, Migration from Previous Versions Release: EAP 6 Beta Topic Types: Task Topic Lifecycle: IA Triage IA Priority: IA Low Priority Topic Lifecycle: IA Proposed Concerns: Application Development Topic Lifecycle: Written Topic Lifecycle: QE Pass
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 4594, Revision 66283
- INFO: Assigned Writer: sgilda Common Names: Logging, Migration from Enterprise Application Platform 5, Migration from Previous Versions Release: EAP 6 Beta Topic Types: Task Topic Lifecycle: IA Triage IA Priority: IA Low Priority Topic Lifecycle: IA Proposed Concerns: Application Development Topic Lifecycle: Written Topic Lifecycle: QE Pass
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 4588, Revision 299164
- INFO: Assigned Writer: sgilda Common Names: Classloading, Migration from Enterprise Application Platform 5, Migration from Previous Versions Release: EAP 6.0.0 Beta Technologies: JBoss Modules Topic Types: Task Topic Lifecycle: IA Triage Topic Lifecycle: IA Proposed Concerns: Application Development Concerns: Application or Service Deployment Topic Lifecycle: Written Topic Lifecycle: QE Pass
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 4589, Revision 66264
- INFO: Assigned Writer: sgilda Common Names: Java Naming and Directory Interface (JNDI), Migration from Enterprise Application Platform 5, Migration from Previous Versions Release: EAP 6 Beta Topic Types: Task Topic Lifecycle: IA Triage Topic Lifecycle: IA Proposed Concerns: Application Development Concerns: Application or Service Deployment Topic Lifecycle: Written Topic Lifecycle: QE Pass
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 5419, Revision 84237
- INFO: Assigned Writer: sgilda Common Names: Java Naming and Directory Interface (JNDI), Migration from Enterprise Application Platform 5, Migration from Previous Versions Content Warnings: Spelling Error Release: EAP 6 Beta Topic Types: Reference Topic Lifecycle: IA Triage IA Priority: IA Low Priority Topic Lifecycle: IA Proposed Concerns: Configuration Concerns: Application Development Concerns: Application or Service Deployment Topic Lifecycle: Assigned Topic Lifecycle: Written Topic Lifecycle: QE Pass
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 4590, Revision 83954
- INFO: Assigned Writer: sgilda Common Names: Logging, Migration from Enterprise Application Platform 5, Migration from Previous Versions Content Warnings: Spelling Error Release: EAP 6 Beta Technologies: JBoss Logging Topic Types: Task Topic Lifecycle: IA Triage Topic Lifecycle: IA Proposed Concerns: Application Development Concerns: Application or Service Deployment Topic Lifecycle: Written Topic Lifecycle: QE Pass
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 4591, Revision 83955
- INFO: Assigned Writer: sgilda Common Names: Migration from Enterprise Application Platform 5, Migration from Previous Versions Content Warnings: Spelling Error Release: EAP 6 Beta Technologies: Hibernate Topic Types: Task Topic Lifecycle: IA Triage Topic Lifecycle: IA Proposed Concerns: Application Development Concerns: Application or Service Deployment Topic Lifecycle: Written Topic Lifecycle: QE Pass
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 4587, Revision 83953
- INFO: Assigned Writer: sgilda Common Names: Migration from Enterprise Application Platform 5, Migration from Previous Versions Content Warnings: Spelling Error Release: EAP 6 Beta Topic Types: Task Topic Lifecycle: IA Triage Topic Lifecycle: IA Proposed Concerns: Configuration Concerns: Datasources Concerns: Application Development Concerns: Application or Service Deployment Topic Lifecycle: Assigned Topic Lifecycle: Written Topic Lifecycle: Edited Topic Lifecycle: QE Pass
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 5409, Revision 84232
- INFO: Assigned Writer: sgilda Common Names: Migration from Enterprise Application Platform 5, Migration from Previous Versions Content Warnings: Spelling Error Release: EAP 6 Beta Topic Types: Task Topic Lifecycle: IA Triage IA Priority: IA Low Priority Topic Lifecycle: IA Proposed Concerns: Configuration Concerns: Application Development Concerns: Application or Service Deployment Topic Lifecycle: Assigned Topic Lifecycle: Written Topic Lifecycle: Edited Topic Lifecycle: QE Pass
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 5408, Revision 40178
- INFO: Assigned Writer: sgilda Common Names: Migration, Migration from Enterprise Application Platform 5 Release: EAP 6 Beta Technologies: Iron Jacamar Topic Types: Task Topic Lifecycle: IA Triage IA Priority: IA Low Priority Topic Lifecycle: IA Proposed Concerns: Configuration Concerns: Datasources Concerns: Application Development Concerns: Application or Service Deployment Topic Lifecycle: Assigned Topic Lifecycle: Written Topic Lifecycle: QE Pass
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 5411, Revision 40178
- INFO: Assigned Writer: sgilda Common Names: Migration, Migration from Enterprise Application Platform 5 Release: EAP 6 Beta Topic Types: Task Topic Lifecycle: IA Triage IA Priority: IA Low Priority Topic Lifecycle: IA Proposed Concerns: Configuration Concerns: Application Development Concerns: Application or Service Deployment Topic Lifecycle: Assigned Topic Lifecycle: Written Topic Lifecycle: QE Pass
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 5410, Revision 84233
- INFO: Assigned Writer: sgilda Common Names: Migration from Enterprise Application Platform 5, Migration from Previous Versions Content Warnings: Spelling Error Release: EAP 6 Beta Topic Types: Task Topic Lifecycle: IA Triage IA Priority: IA Low Priority Topic Lifecycle: IA Proposed Concerns: Configuration Concerns: Application Development Concerns: Application or Service Deployment Topic Lifecycle: Assigned Topic Lifecycle: Written Topic Lifecycle: QE Pass
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 5412, Revision 75220
- INFO: Assigned Writer: sgilda Common Names: Classloading, Migration from Enterprise Application Platform 5, Migration from Previous Versions Release: EAP 6 Beta Topic Types: Task Topic Lifecycle: IA Triage IA Priority: IA Low Priority Topic Lifecycle: IA Proposed Concerns: Configuration Concerns: Application Development Concerns: Application or Service Deployment Topic Lifecycle: Assigned Topic Lifecycle: Written Topic Lifecycle: Edited Topic Lifecycle: QE Pass
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 4941, Revision 308747
- INFO: Assigned Writer: sgilda Common Names: Classloading, Migration from Enterprise Application Platform 5, Migration from Previous Versions Content Warnings: Spelling Error Release: EAP 6.0.0 Beta Technologies: JBoss Modules Topic Types: Task Topic Lifecycle: IA Triage IA Priority: IA Low Priority Topic Lifecycle: IA Proposed Concerns: Configuration Concerns: Application Development Concerns: Application or Service Deployment Topic Lifecycle: Written Topic Lifecycle: QE Pass
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 5250, Revision 84156
- INFO: Assigned Writer: sgilda Common Names: Classloading, Migration from Enterprise Application Platform 5, Migration from Previous Versions Content Warnings: Spelling Error Release: EAP 6 Beta Technologies: JBoss Modules, JBoss Web Topic Types: Task Topic Lifecycle: IA Triage IA Priority: IA Low Priority Topic Lifecycle: IA Proposed Concerns: Configuration Concerns: Application Development Concerns: Application or Service Deployment Concerns: Troubleshooting Topic Lifecycle: Assigned Topic Lifecycle: Written Topic Lifecycle: QE Pass
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 5131, Revision 84103
- INFO: Assigned Writer: sgilda Common Names: Migration from Enterprise Application Platform 5, Migration from Previous Versions Content Warnings: Spelling Error Release: EAP 6 Beta Technologies: Hibernate Topic Types: Task Topic Lifecycle: IA Triage IA Priority: IA Low Priority Topic Lifecycle: IA Proposed Concerns: Application Development Topic Lifecycle: Written Topic Lifecycle: QE Pass
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 5251, Revision 84157
- INFO: Assigned Writer: sgilda Common Names: Classloading, Migration from Enterprise Application Platform 5, Migration from Previous Versions Content Warnings: Spelling Error Release: EAP 6 Beta Technologies: JBoss Modules Topic Types: Task Topic Lifecycle: IA Triage IA Priority: IA Low Priority Topic Lifecycle: IA Proposed Concerns: Configuration Concerns: Application Development Concerns: Application or Service Deployment Concerns: Troubleshooting Topic Lifecycle: Assigned Topic Lifecycle: Written Topic Lifecycle: QE Pass
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 5130, Revision 84102
- INFO: Assigned Writer: sgilda Common Names: Migration from Enterprise Application Platform 5, Migration from Previous Versions Content Warnings: Spelling Error Release: EAP 6 Beta Technologies: Hibernate Topic Types: Task Topic Lifecycle: IA Triage IA Priority: IA Low Priority Topic Lifecycle: IA Proposed Concerns: Application Development Topic Lifecycle: Written Topic Lifecycle: QE Pass
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 5132, Revision 66318
- INFO: Assigned Writer: sgilda Common Names: Migration from Enterprise Application Platform 5, Migration from Previous Versions Release: EAP 6 Beta Technologies: Hibernate Topic Types: Task Topic Lifecycle: IA Triage IA Priority: IA Low Priority Topic Lifecycle: IA Proposed Concerns: Application Development Topic Lifecycle: Written Topic Lifecycle: Edited Topic Lifecycle: QE Pass
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 5946, Revision 327997
- INFO: Assigned Writer: sgilda Common Names: Migration from Enterprise Application Platform 5, Migration from Previous Versions Concerns: Migration Content Warnings: Spelling Error Release: EAP 6.0.0 Beta Topic Types: Overview Topic Lifecycle: IA Triage IA Priority: IA Low Priority Concerns: Getting Started Topic Lifecycle: IA Proposed Concerns: Application Development Topic Lifecycle: Written Topic Lifecycle: QE Pass
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 9104, Revision 138514
- INFO: Assigned Writer: sgilda Common Names: Migration from Enterprise Application Platform 5, Migration from Previous Versions Concerns: Migration Release: EAP 6.0 Topic Types: Task Topic Lifecycle: IA Triage IA Priority: IA Low Priority Topic Lifecycle: IA Proposed Concerns: Application Development Topic Lifecycle: Assigned Topic Lifecycle: Written
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 4961, Revision 84072
- INFO: Assigned Writer: sgilda Common Names: Java Naming and Directory Interface (JNDI), Migration from Enterprise Application Platform 5, Migration from Previous Versions Content Warnings: Spelling Error Release: EAP 6 Beta Topic Types: Reference Topic Lifecycle: IA Triage IA Priority: IA Low Priority Topic Lifecycle: IA Proposed Concerns: Configuration Concerns: Application Development Topic Lifecycle: Written Topic Lifecycle: QE Pass
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 4422, Revision 83894
- INFO: Assigned Writer: sgilda Common Names: Migration from Enterprise Application Platform 5, Migration from Previous Versions Content Warnings: Spelling Error Release: EAP 6 Beta Technologies: Hibernate Validator Topic Types: Task Topic Lifecycle: IA Triage IA Priority: IA Low Priority Concerns: Getting Started Concerns: Configuration Concerns: Application Development Topic Lifecycle: Assigned Topic Lifecycle: Written Topic Lifecycle: QE Pass
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 7449, Revision 85304
- INFO: Assigned Writer: twells Common Names: Java Persistence API (JPA) Content Warnings: Spelling Error Release: EAP 6.0 Technologies: Hibernate Topic Types: Reference IA Priority: IA Low Priority Topic Lifecycle: IA Proposed Concerns: Configuration Concerns: Application Development Topic Lifecycle: Approved Topic Lifecycle: Assigned Topic Lifecycle: Written Topic Lifecycle: QE Pass
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 11489, Revision 299164
- INFO: Assigned Writer: sgilda Common Names: Application Server, Classloading, Migration from Enterprise Application Platform 5, Migration from Previous Versions Concerns: Migration, User Administration Release: EAP 6.0.0 Beta, EAP 6.0.0 GA, EAP 6.0.1, EAP 6.1.0 Technologies: JBoss Modules Topic Types: Task Topic Lifecycle: IA Triage IA Priority: IA Low Priority Topic Lifecycle: IA Proposed Concerns: Configuration Concerns: Application Development Concerns: Application or Service Deployment Topic Lifecycle: Assigned Topic Lifecycle: Written
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Topic ID 11490, Revision 299164
- INFO: Assigned Writer: sgilda Common Names: Application Server, Classloading, Migration from Enterprise Application Platform 5, Migration from Previous Versions Concerns: Migration, User Administration Release: EAP 6.0.0 Beta, EAP 6.0.0 GA, EAP 6.0.1, EAP 6.1.0 Technologies: JBoss Modules Topic Types: Task Topic Lifecycle: IA Triage IA Priority: IA Low Priority Topic Lifecycle: IA Proposed Concerns: Configuration Concerns: Web Development Concerns: Application Development Concerns: Application or Service Deployment Topic Lifecycle: Written
- INFO: Topic URL
- WARNING: This topic's translated content is older than the specfied topic's content.
Compiler Glossary リンクのコピーリンクがクリップボードにコピーされました!
- "This topic contains an invalid element that can't be converted into a DOM Element."
- The topic XML contains invalid elements that cannot be successfully converted in DOM elements.
- To fix this error please remove or correct any invalid XML elements or entities. Note: HTML Entities aren't classified as valid XML Entities.
- "This topic contains strings that are marked as "fuzzy"."
- The topic hasn't finished being translated by the Translator(s) yet, as such the topic will be displayed using translated content that may not be 100% correct.
- To fix this warning, please contact the Translator(s) responsible for translating the topics in this locale.
- "This topic doesn't have well-formed xml."
- The topic XML is not well-formed XML and maybe missing opening or closing element statements.
- To fix this error please ensure that all XML elements having an opening and closing statement and all XML reserved characters are represented as XML entities.
- "This topic has invalid Docbook XML."
- The topic XML is not valid against the Docbook 4.5 DTD.
- To fix this error please ensure that all XML elements are valid Docbook elements . Also check to ensure all XML sub elements are valid for the root XML element.
- "This topic has invalid Injection Points."
- The topic XML contains Injection Points that cannot be resolved into links.
- To fix this error please ensure that all the topics referred to by Injection Points are included in the build and/or have adequate relationships.
- "This topic has no XML data"
- The topic doesn't have any XML Content to display.
- To fix this warning, open the topic URL and add some content.
- "This topic hasn't been fully translated."
- The topic hasn't finished being translated by the Translator(s) yet, as such the topic will be displayed using incomplete translated content.
- To fix this warning, please contact the Translator(s) responsible for translating the topics in this locale.
- "This topic hasn't been pushed for translation."
- The topic hasn't been pushed for translation yet, as such the topic will be displayed using the original topic's content.
- To fix this warning, please send a request to the User responsible for pushing Translations to Zanata and request that the topic be pushed for translation.
- "This topic is an untranslated topic."
- The topic hasn't been translated yet by the Translator(s), as such the topic will be displayed using the untranslated content.
- To fix this warning, please contact the Translator(s) responsible for translating the topics in this locale.
- "This topic's translated content is older than the specfied topic's content."
- A previous revision of this topic has been pushed to Zanata, and has been translated. This previous revision has been included in the book, but will display content that is older than what was defined by the Content Specification.
- To fix this warning, please send a request to the User responsible for pushing Translations to Zanata and request that the topic be pushed for translation. In most cases the existing translations will be able to be reused when the topic is pushed to Zanata.
- "This untranslated topic uses content that is older than the specfied topic's content."
- A previous revision of this topic has been pushed to Zanata, and has not yet been translated.This previous revision has been included in the book, but will display content that is older than what was defined by the Content Specification.
- To fix this warning, please send a request to the User responsible for pushing Translations to Zanata and request that the topic be pushed for translation.
付録A 改訂履歴 リンクのコピーリンクがクリップボードにコピーされました!
| 改訂履歴 | |||
|---|---|---|---|
| 改訂 0.1-1.400 | 2013-10-31 | ||
| |||
| 改訂 0.1-1 | Tue Dec 18 2012 | ||
| |||
| 改訂 0.0-2 | Wed Nov 21 2012 | ||
| |||
| 改訂 0.0-1 | Wed Nov 14 2012 | ||
| |||