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