60.19. WildFly-Camel での EAR デプロイメント用の Camel CDI
WildFly-Camel での Camel CDI EAR デプロイメントは、標準の WAR または JAR デプロイメントと比較して、クラスおよびリソースのロード動作にいくつかの違いがあります。
WildFly は、EAR デプロイメント ClassLoader を使用して Weld をブートストラップします。WildFly では、単一の CDI 拡張機能のみを作成し、すべての EAR サブデプロイメントで共有することも義務付けています。
これにより、EAR デプロイメント ClassLoader を使用して '自動設定' CDI Camel コンテキストが生成され、クラスとリソースが動的にロードされます。デフォルトでは、この ClassLoader は EAR サブデプロイメント内のリソースにアクセスできません。
EAR デプロイメントの場合、'自動設定' された CDI Camel コンテキストの使用を避け、RouteBuilder クラスに @ContextName のアノテーションを付けるか、@ImportResource アノテーションまたは CDI producer メソッドとフィールドを介して CamelContext を作成することを推奨します。これは、WildFly-Camel が Camel で使用する正しい ClassLoader を決定するのに役立ちます。