Apache camel 使用cdi容器启动camel单机版

Apache camel 使用cdi容器启动camel单机版,apache-camel,cdi,Apache Camel,Cdi,我尝试使用cdi.main创建一个独立的camel org.apache.camel.cdi.Main.main(); //not org.apache.camel.Main 我还配置了deltaspike,看到了cdi容器,但我的CamelContext没有启动 如果有人已经独立运行了Camel引导cdi,您可以发送代码吗 更新: 我一直在犯这样的错误: org.apache.webbeans.exception.WebBeansDeploymentException: javax

我尝试使用cdi.main创建一个独立的camel

org.apache.camel.cdi.Main.main();

//not org.apache.camel.Main
我还配置了deltaspike,看到了cdi容器,但我的CamelContext没有启动

如果有人已经独立运行了Camel引导cdi,您可以发送代码吗

更新: 我一直在犯这样的错误:

    org.apache.webbeans.exception.WebBeansDeploymentException: javax.enterprise.inject.AmbiguousResolutionException: There is more than one Bean with type org.apache.camel.CamelContextQualifiers: [@javax.enterprise.inject.Default()]
    for injection into Field Injection Point, field name :  ctx, Bean Owner : [ContextInitializer, WebBeansType:MANAGED, Name:null, API Types:[java.lang.Object,proj.core.ContextInitializer], Qualifiers:[javax.enterprise.inject.Default,javax.enterprise.inject.Any]]
    found beans: 
    CdiCamelContext, WebBeansType:THIRDPARTY, Name:CamelContext, API Types:[org.apache.camel.CamelContext,org.apache.camel.cdi.CdiCamelContext,java.lang.Object], Qualifiers:[javax.enterprise.inject.Default,javax.enterprise.inject.Any] from jar:file:/P:/atos/common/apache-maven-repo/org/apache/camel/camel-cdi/2.16.1/camel-cdi-2.16.1.jar!/org/apache/camel/cdi/CdiCamelContext.class
    CamelContext, WebBeansType:PRODUCERMETHOD, Name:null, API Types:[org.apache.camel.CamelContext,org.apache.camel.SuspendableService,org.apache.camel.RuntimeConfiguration,java.lang.Object,org.apache.camel.Service], Qualifiers:[javax.enterprise.inject.Default,javax.enterprise.inject.Any] from file:/P:/atos/proj-vnext/proj-core/target/classes/proj/core/CamelContextFactory.class

如果有人遇到同样的问题,我只是发现了问题,这只是pom.xml中的配置问题。混合驼峰核心和驼峰cdi版本

这是我的工作配置=>camel、OpenWebBeans容器和deltaspike

*/启动应用程序的代码

 org.apache.camel.cdi.Main maincdi = new org.apache.camel.cdi.Main(){};
 maincdi.run();
*/骆驼上下文生成器

  public class CamelContextFactory {
      @Produces
      @ApplicationScoped
      CamelContext customize() {
          DefaultCamelContext context = new DefaultCamelContext();
          context.setName("my-custom-camel-context");
          return context;
      }

      void cleanUp(@Disposes CamelContext context) {
          // ...
      }
  }
*/创建上下文初始值设定项

    @ApplicationScoped
    public class ContextInitializer {
        @Inject
        private CamelContext ctx;

        @Inject
        @Any
        private Instance<RouteBuilder> routes;


        @PostConstruct
        public void init() {

            // add routes
            for (RouteBuilder route : routes) {
                try {
                    ctx.addRoutes(route);

                } catch (Exception ex) {
                    Logger.getLogger(ContextInitializer.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
            //this.ctx.start();
        }

        @PreDestroy
        public void stop() {
            //this.ctx.stop();
        }
    }
*/pom.xml的一部分

     <properties>
            <deltaspike.version>1.7.2</deltaspike.version>
            <!--<weld.version>2.3.3.Final</weld.version>-->
            <owb.version>1.6.3</owb.version>
        </properties>
        <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.apache.deltaspike.distribution</groupId>
                    <artifactId>distributions-bom</artifactId>
                    <version>${deltaspike.version}</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
            </dependencies>
        </dependencyManagement>

        <dependencies>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>3.8.1</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.camel</groupId>
                <artifactId>camel-core</artifactId>
                <version>2.18.1</version>
            </dependency>
            <dependency>
                <groupId>org.apache.camel</groupId>
                <artifactId>camel-cdi</artifactId>
                <version>2.18.1</version>
            </dependency>

            <!--delta spike core-->
            <dependency>
                <groupId>org.apache.deltaspike.core</groupId>
                <artifactId>deltaspike-core-api</artifactId>
                <version>${deltaspike.version}</version>
                <scope>compile</scope>
            </dependency>

            <dependency>
                <groupId>org.apache.deltaspike.core</groupId>
                <artifactId>deltaspike-core-impl</artifactId>
                <version>${deltaspike.version}</version>
                <scope>runtime</scope>
            </dependency>

            <!--container control-->
            <dependency>
                <groupId>org.apache.deltaspike.cdictrl</groupId>
                <artifactId>deltaspike-cdictrl-api</artifactId>
                <version>${deltaspike.version}</version>
                <scope>compile</scope>
            </dependency>

            <!--open web bean dependency-->

            <dependency>
                <groupId>org.apache.openwebbeans</groupId>
                <artifactId>openwebbeans-impl</artifactId>
                <version>${owb.version}</version>
                <scope>runtime</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.openwebbeans</groupId>
                <artifactId>openwebbeans-spi</artifactId>
                <version>${owb.version}</version>
                <scope>compile</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.geronimo.specs</groupId>
                <artifactId>geronimo-jcdi_1.1_spec</artifactId>
                <version>1.0</version>
            </dependency>
            <dependency>
                <groupId>org.apache.geronimo.specs</groupId>
                <artifactId>geronimo-atinject_1.0_spec</artifactId>
                <version>1.0</version>
            </dependency>
            <dependency>
                <groupId>org.apache.geronimo.specs</groupId>
                <artifactId>geronimo-interceptor_1.2_spec</artifactId>
                <version>1.0</version>
            </dependency>
            <dependency>
                <groupId>org.apache.geronimo.specs</groupId>
                <artifactId>geronimo-annotation_1.2_spec</artifactId>
                <version>1.0</version>
            </dependency>
            <dependency>
                <groupId>org.apache.deltaspike.cdictrl</groupId>
                <artifactId>deltaspike-cdictrl-owb</artifactId>
                <scope>runtime</scope>
            </dependency>
            <dependency>
                <groupId>javax.enterprise</groupId>
                <artifactId>cdi-api</artifactId>
                <version>1.2</version>
            </dependency>
        </dependencies>

1.7.2
1.6.3
org.apache.deltaspike.distribution
分发bom表
${deltaspike.version}
聚甲醛
进口
朱尼特
朱尼特
3.8.1
测试
org.apache.camel
驼芯
2.18.1
org.apache.camel
骆驼cdi
2.18.1
org.apache.deltaspike.core
deltaspike核心api
${deltaspike.version}
编译
org.apache.deltaspike.core
德尔塔斯派克核电站
${deltaspike.version}
运行时
org.apache.deltaspike.cdictrl
deltaspike cdictrl api
${deltaspike.version}
编译
org.apache.openwebbeans
openwebbeans impl
${owb.version}
运行时
org.apache.openwebbeans
openwebbeans spi
${owb.version}
编译
org.apache.geronimo.specs
geronimo-jcdi_1.1_规范
1
org.apache.geronimo.specs
geronimo-atinject_1.0_规范
1
org.apache.geronimo.specs
geronimo-interceptor_1.2_规范
1
org.apache.geronimo.specs
geronimo-annotation_1.2_规范
1
org.apache.deltaspike.cdictrl
德尔塔斯派克cdictrl owb
运行时
javax.enterprise
CDIAPI
1.2

=>我的错误是我使用了camel core 2.18.1版和camel cdi 2.16.1版

查看现有的cdi示例我查看了文档,也查看了github repo,但无法将其作为独立应用程序使用。我试图用ApacheOpenWebBeans配置它,但ApplicationScope的camelContext从未启动。我的配置肯定有问题,如果有人对配置也有问题,我会回来发布配置。另一件事,你是指可以从这里找到的示例:或者github repo中的某个地方。(我只找到了一个没有cdi的独立应用程序)
     <properties>
            <deltaspike.version>1.7.2</deltaspike.version>
            <!--<weld.version>2.3.3.Final</weld.version>-->
            <owb.version>1.6.3</owb.version>
        </properties>
        <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.apache.deltaspike.distribution</groupId>
                    <artifactId>distributions-bom</artifactId>
                    <version>${deltaspike.version}</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
            </dependencies>
        </dependencyManagement>

        <dependencies>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>3.8.1</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.camel</groupId>
                <artifactId>camel-core</artifactId>
                <version>2.18.1</version>
            </dependency>
            <dependency>
                <groupId>org.apache.camel</groupId>
                <artifactId>camel-cdi</artifactId>
                <version>2.18.1</version>
            </dependency>

            <!--delta spike core-->
            <dependency>
                <groupId>org.apache.deltaspike.core</groupId>
                <artifactId>deltaspike-core-api</artifactId>
                <version>${deltaspike.version}</version>
                <scope>compile</scope>
            </dependency>

            <dependency>
                <groupId>org.apache.deltaspike.core</groupId>
                <artifactId>deltaspike-core-impl</artifactId>
                <version>${deltaspike.version}</version>
                <scope>runtime</scope>
            </dependency>

            <!--container control-->
            <dependency>
                <groupId>org.apache.deltaspike.cdictrl</groupId>
                <artifactId>deltaspike-cdictrl-api</artifactId>
                <version>${deltaspike.version}</version>
                <scope>compile</scope>
            </dependency>

            <!--open web bean dependency-->

            <dependency>
                <groupId>org.apache.openwebbeans</groupId>
                <artifactId>openwebbeans-impl</artifactId>
                <version>${owb.version}</version>
                <scope>runtime</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.openwebbeans</groupId>
                <artifactId>openwebbeans-spi</artifactId>
                <version>${owb.version}</version>
                <scope>compile</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.geronimo.specs</groupId>
                <artifactId>geronimo-jcdi_1.1_spec</artifactId>
                <version>1.0</version>
            </dependency>
            <dependency>
                <groupId>org.apache.geronimo.specs</groupId>
                <artifactId>geronimo-atinject_1.0_spec</artifactId>
                <version>1.0</version>
            </dependency>
            <dependency>
                <groupId>org.apache.geronimo.specs</groupId>
                <artifactId>geronimo-interceptor_1.2_spec</artifactId>
                <version>1.0</version>
            </dependency>
            <dependency>
                <groupId>org.apache.geronimo.specs</groupId>
                <artifactId>geronimo-annotation_1.2_spec</artifactId>
                <version>1.0</version>
            </dependency>
            <dependency>
                <groupId>org.apache.deltaspike.cdictrl</groupId>
                <artifactId>deltaspike-cdictrl-owb</artifactId>
                <scope>runtime</scope>
            </dependency>
            <dependency>
                <groupId>javax.enterprise</groupId>
                <artifactId>cdi-api</artifactId>
                <version>1.2</version>
            </dependency>
        </dependencies>