59.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 を決定するのに役立ちます。