60.19. Camel CDI 用于 WildFly-Camel 上的 EAR 部署
与标准的 WAR 或 JAR 部署相比,WildFly-Camel 上的 Camel CDI EAR 部署在类和资源加载方面有一些区别。
WildFly bootstraps Weld 使用 EAR 部署类Loader。WildFly 还要求所有 EAR 子部署仅创建并共享一个 CDI 扩展。
这会导致"Auto-configured" CDI Camel 上下文使用 EAR 部署类加载器来动态加载类和资源。默认情况下,这个 ClassLoader 无法访问 EAR 子部署中的资源。
对于 EAR 部署,建议使用 'Auto-configured' CDI Camel Context,并且 RouteBuilder 类使用 @ContextName 标注,或者通过 @ImportResource 注释或通过 CDI producer 方法和字段创建 CamelContext。这有助于 WildFly-Camel 确定用于 Camel 的正确 ClassLoader。