2.4. アプリケーション
JBoss Enterprise Application Platform 5 は、Java Enterprise Edition 5 (Java EE 5) Platform 仕様に完全対応しています。Java EE 5 は Java 言語のメタデータの関連を定義します。これにより、アプリケーションコードにアノテーションを付けることができ、可能な限り配備記述子の必要をなくします。デフォルト動作も定義されますが、必要な場合は変更することもできます。これは例外による設定と呼ばれます。
Enterprise Application Platform 4.x 上で実行されるポータブル Java EE アプリケーションは、変更せずに Enterprise Application Platform 5 へデプロイすることが可能です。他ベンダーのアプリケーションサーバーを JBoss Enterprise Application Platform 5 に移行する場合は、ランタイム固有のデプロイメント情報が必要になることがあります。
Enterprise Application Platform 5 ユーザーは、簡易化されたパッケージや Java EE 5 Platform 仕様で定義されているデプロイメントルールを活用することができます (エンタープライズアーカイブ (EAR) に
application.xml ファイルを必要としないなど)。また、EAR のルートディレクトリにあるデフォルトのライブラリディレクトリ (lib) によって、JAR を EAR 内にパッケージされた全てのコンポーネントに対して使用できるようにします。application.xml ファイルが含まれている場合は、library-directory 要素を使用して lib ディレクトリの場所を指定することができます。
Enterprise Application Platform 5 には、JBoss マイクロコンテナーの後の新しいデプロイ可能ユニットである MCBeans archive も導入されました。通常、MCBeans アーカイブの接尾辞は
.beans または .deployer になります。MCBeans アーカイブは、 POJO デプロイメントを META-INF/jboss-beans.xml 記述子と共に JAR ファイルにパッケージします。この形式は、 Enterprise Application Platform デプロイヤに共通しています。
全ファイルタイプのアプリケーション検証はデフォルトで有効になっています。次のように
deployers/ear-deployer-jboss-beans.xml ファイル内で設定することができます。
<!-- uncomment to disable xml validation <property name="useValidation">false</property --> <!-- in case xml validation is disabled, it's also better to turn off schema validation <property name="useSchemaValidation">false</property -->
<!-- uncomment to disable xml validation
<property name="useValidation">false</property -->
<!-- in case xml validation is disabled, it's also better to turn off schema validation
<property name="useSchemaValidation">false</property -->
Enterprise JavaBean 2.0 のアーカイブ検証は、Enterprise Application Platform 5 でも Enterprise Application Platform 4.x と同じです。ただし、検証を制御するプロパティが
deploy/ejb-deployer.xml から deployers/ejb-deployer-jboss-beans.xml へ移動されました。
エンタープライズアーカイブにアプリケーションクライアントのみが含まれ、EJB へ参照する場合、
jboss-client.xml デプロイメント記述子で ejb-ref または ejb-local-ref 定義に </ignore-dependency> 要素を追加する必要があります。これにより、参照される依存関係を解決せずにアーカイブをデプロイするよう、デプロイヤが指示されます。
2.4.1. クラスローティング リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
新しい
ClassLoader は、通常の使用には影響しない 1 つの例外を除き、完全な後方互換性を提供します ( http://www.jboss.org/community/docs/DOC-12840 )。JBoss AS 4.x のクラスローティング設定はすべて新しい実装でも動作し、デフォルト設定のほとんどが前バージョンの動作を維持します。
新しい
ClassLoader の設計や実装の多くは元の UnifiedClassLoader と同じですが、 次の改良が加えられています。
- クラスローダーが JMX に依存しなくなったため、 すべての環境でスタンドアロンとして使用できるようになりました。
- 独自のクラスローダーポリシーの実装がより簡単になりました。
- 使用するクラスローダーが委譲するクラスローダーに対する制御が強化されました。
- どのクラスを他のクラスローダーに表示するかといった制御が強化されました。
- 階層レポジトリがドメインに変更になり、1 つのレベル以上に拡大できるようになりました。
注記
useJBossWebClassLoader="true" は、JBoss Enterprise Application Platform 5 では使用されません。Enterprise Application Platform 5 のすべての WAR クラスローダーは、JBoss ClassLoader のため、WarDeployer は、Web アプリケーションの詳細設定を処理しなくなりました。
WAR のクラスローティング設定を変更する方法は複数あります。
WarClassLoaderDeployerの削除WarClassLoaderDeployerは WAR の定義されたクラスローディングルールを自動的に実装します。 各 WAR にはスコープされたクラスローティングドメインが割り当てされます。 他のアプリケーションや親 EAR はクラスを可視することはできず、可能な場合は WAR のクラスが最初に呼び出されます。 この動作を排除し、WAR クラスローダーが他のデプロイヤー同様に動作するようにするには、deployers/jbossweb.deploy/META-INF/war-deployers-jboss-beans.xmlのWarClassLoaderDeployerをコメントアウトします。- WAR にクラスローディングルールを明示的に定義する
- WAR に
WEB-INF/jboss-classloading.xmlと次の内容を追加することもできます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow これは、WAR のクラスローダーの構築を定義します。 この例では、WAR のクラスローダーは、独自のドメインを定義しない他すべてのアプリケーションと共有するDefaultDomainに置かれています。import-allが有効になっているため、クラスローダーは別のアプリケーションによってエクスポートされる他のクラスをすべて確認します。export-allが設定され、アプリケーションのすべてのクラスを別のクラスに公開します。