有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何将第三方CDI bean工厂排除在Quarkus Arc bean解析之外?

我试图在Quarkus项目中使用Camel CDI依赖项来实现其事务策略。但Quarkus在创业时就因为这种依赖而崩溃了

implementation 'org.apache.camel:camel-cdi:3.2.0'

看来,Quarkus Arc正在尝试解析类提供的bean

org.apache.camel.cdi.CdiCamelExtension

但我不需要它。我的申请不使用提供的依赖项

如何将此类工厂排除在Quarkus Arc加工之外

Stacktrace:

Caused by: javax.enterprise.inject.spi.DeploymentException: Found 8 deployment problems: 
[1] Unsatisfied dependency for type org.apache.camel.cdi.CdiCamelExtension and qualifiers [@Default]
        - java member: org.apache.camel.cdi.CdiCamelFactory#typeConverter()
        - declared on PRODUCER METHOD bean [types=[org.apache.camel.TypeConverter, java.lang.Object], qualifiers=[@Default, @Any], target=org.apache.camel.TypeConverter typeConverter(javax.enterprise.inject.spi.InjectionPoint ip, javax.enterprise.inject.Instance<org.apache.camel.CamelContext> instance, org.apache.camel.cdi.CdiCamelExtension extension), declaringBean=org.apache.camel.cdi.CdiCamelFactory]
[2] Unsatisfied dependency for type org.apache.camel.cdi.CdiCamelExtension and qualifiers [@Default]
        - java member: org.apache.camel.cdi.CdiCamelFactory#mockEndpointFromUri()
        - declared on PRODUCER METHOD bean [types=[org.apache.camel.component.mock.MockEndpoint, java.lang.Object], qualifiers=[@Uri(value = ""), @Any], target=org.apache.camel.component.mock.MockEndpoint mockEndpointFromUri(javax.enterprise.inject.spi.InjectionPoint ip, javax.enterprise.inject.Instance<org.apache.camel.CamelContext> instance, org.apache.camel.cdi.CdiCamelExtension extension), declaringBean=org.apache.camel.cdi.CdiCamelFactory]
[3] Unsatisfied dependency for type org.apache.camel.cdi.CdiCamelExtension and qualifiers [@Default]
        - java member: org.apache.camel.cdi.CdiCamelFactory#producerTemplate()
        - declared on PRODUCER METHOD bean [types=[java.lang.AutoCloseable, org.apache.camel.ProducerTemplate, java.lang.Object, org.apache.camel.Service], qualifiers=[@Default, @Uri(value = ""), @Any], target=org.apache.camel.ProducerTemplate producerTemplate(javax.enterprise.inject.spi.InjectionPoint ip, javax.enterprise.inject.Instance<org.apache.camel.CamelContext> instance, org.apache.camel.cdi.CdiCamelExtension extension), declaringBean=org.apache.camel.cdi.CdiCamelFactory]
[4] Unsatisfied dependency for type org.apache.camel.cdi.CdiCamelExtension and qualifiers [@Default]
        - java member: org.apache.camel.cdi.CdiCamelFactory#consumerTemplate()
        - declared on PRODUCER METHOD bean [types=[org.apache.camel.ConsumerTemplate, java.lang.AutoCloseable, java.lang.Object, org.apache.camel.Service], qualifiers=[@Default, @Any], target=org.apache.camel.ConsumerTemplate consumerTemplate(javax.enterprise.inject.spi.InjectionPoint ip, javax.enterprise.inject.Instance<org.apache.camel.CamelContext> instance, org.apache.camel.cdi.CdiCamelExtension extension), declaringBean=org.apache.camel.cdi.CdiCamelFactory]
[5] Unsatisfied dependency for type org.apache.camel.cdi.CdiCamelExtension and qualifiers [@Default]
        - java member: org.apache.camel.cdi.CdiCamelFactory#endpoint()
        - declared on PRODUCER METHOD bean [types=[java.lang.AutoCloseable, org.apache.camel.IsSingleton, java.lang.Object, org.apache.camel.Endpoint, org.apache.camel.Service], qualifiers=[@Uri(value = ""), @Any], target=org.apache.camel.Endpoint endpoint(javax.enterprise.inject.spi.InjectionPoint ip, javax.enterprise.inject.Instance<org.apache.camel.CamelContext> instance, org.apache.camel.cdi.CdiCamelExtension extension), declaringBean=org.apache.camel.cdi.CdiCamelFactory]
[6] Unsatisfied dependency for type org.apache.camel.cdi.CdiCamelExtension and qualifiers [@Default]
        - java member: org.apache.camel.cdi.CdiCamelFactory#mockEndpointFromMember()
        - declared on PRODUCER METHOD bean [types=[org.apache.camel.component.mock.MockEndpoint, java.lang.Object], qualifiers=[@Default, @Any], target=org.apache.camel.component.mock.MockEndpoint mockEndpointFromMember(javax.enterprise.inject.spi.InjectionPoint ip, javax.enterprise.inject.Instance<org.apache.camel.CamelContext> instance, org.apache.camel.cdi.CdiCamelExtension extension), declaringBean=org.apache.camel.cdi.CdiCamelFactory]
[7] Unsatisfied dependency for type org.apache.camel.cdi.CdiCamelExtension and qualifiers [@Default]
        - java member: org.apache.camel.cdi.CdiCamelFactory#fluentProducerTemplate()
        - declared on PRODUCER METHOD bean [types=[org.apache.camel.FluentProducerTemplate, java.lang.AutoCloseable, java.lang.Object, org.apache.camel.Service], qualifiers=[@Default, @Uri(value = ""), @Any], target=org.apache.camel.FluentProducerTemplate fluentProducerTemplate(javax.enterprise.inject.spi.InjectionPoint ip, javax.enterprise.inject.Instance<org.apache.camel.CamelContext> instance, org.apache.camel.cdi.CdiCamelExtension extension), declaringBean=org.apache.camel.cdi.CdiCamelFactory]
[8] Unsatisfied dependency for type org.apache.camel.cdi.CdiCamelExtension and qualifiers [@Default]
        - java member: org.apache.camel.cdi.CdiCamelFactory#cdiEventEndpoint()
        - declared on PRODUCER METHOD bean [types=[org.apache.camel.CamelContextAware, org.apache.camel.support.DefaultEndpoint, org.apache.camel.IsSingleton, org.apache.camel.support.service.ServiceSupport, org.apache.camel.ShutdownableService, org.apache.camel.cdi.CdiEventEndpoint<T>, java.lang.Object, org.apache.camel.SuspendableService, org.apache.camel.Endpoint, org.apache.camel.Service, org.apache.camel.StatefulService, java.lang.AutoCloseable, org.apache.camel.support.service.BaseService, org.apache.camel.spi.HasId], qualifiers=[@Default, @Any], target=org.apache.camel.cdi.CdiEventEndpoint<T> cdiEventEndpoint(javax.enterprise.inject.spi.InjectionPoint ip, javax.enterprise.inject.Instance<org.apache.camel.CamelContext> instance, org.apache.camel.cdi.CdiCamelExtension extension, javax.enterprise.event.Event<java.lang.Object> event) throws java.lang.Exception, declaringBean=org.apache.camel.cdi.CdiCamelFactory]
        at io.quarkus.arc.processor.BeanDeployment.processErrors(BeanDeployment.java:981)
        at io.quarkus.arc.processor.BeanDeployment.init(BeanDeployment.java:240)
        at io.quarkus.arc.processor.BeanProcessor.initialize(BeanProcessor.java:135)
        at io.quarkus.arc.deployment.ArcProcessor.validate(ArcProcessor.java:358)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at io.quarkus.deployment.ExtensionLoader$2.execute(ExtensionLoader.java:931)
        at io.quarkus.builder.BuildContext.run(BuildContext.java:277)
        at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
        at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:2046)
        at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1578)
        at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1452)
        at java.base/java.lang.Thread.run(Thread.java:834)
        at org.jboss.threads.JBossThread.run(JBossThread.java:479)
        Suppressed: javax.enterprise.inject.UnsatisfiedResolutionException: Unsatisfied dependency for type org.apache.camel.cdi.CdiCamelExtension and qualifiers [@Default]
        - java member: org.apache.camel.cdi.CdiCamelFactory#typeConverter()
        - declared on PRODUCER METHOD bean [types=[org.apache.camel.TypeConverter, java.lang.Object], qualifiers=[@Default, @Any], target=org.apache.camel.TypeConverter typeConverter(javax.enterprise.inject.spi.InjectionPoint ip, javax.enterprise.inject.Instance<org.apache.camel.CamelContext> instance, org.apache.camel.cdi.CdiCamelExtension extension), declaringBean=org.apache.camel.cdi.CdiCamelFactory]
                at io.quarkus.arc.processor.Beans.resolveInjectionPoint(Beans.java:486)
                at io.quarkus.arc.processor.BeanInfo.init(BeanInfo.java:362)
                at io.quarkus.arc.processor.BeanDeployment.init(BeanDeployment.java:232)
                ... 14 more
        Suppressed: javax.enterprise.inject.UnsatisfiedResolutionException: Unsatisfied dependency for type org.apache.camel.cdi.CdiCamelExtension and qualifiers [@Default]
        - java member: org.apache.camel.cdi.CdiCamelFactory#mockEndpointFromUri()
        - declared on PRODUCER METHOD bean [types=[org.apache.camel.component.mock.MockEndpoint, java.lang.Object], qualifiers=[@Uri(value = ""), @Any], target=org.apache.camel.component.mock.MockEndpoint mockEndpointFromUri(javax.enterprise.inject.spi.InjectionPoint ip, javax.enterprise.inject.Instance<org.apache.camel.CamelContext> instance, org.apache.camel.cdi.CdiCamelExtension extension), declaringBean=org.apache.camel.cdi.CdiCamelFactory]
                at io.quarkus.arc.processor.Beans.resolveInjectionPoint(Beans.java:486)
                at io.quarkus.arc.processor.BeanInfo.init(BeanInfo.java:362)
                at io.quarkus.arc.processor.BeanDeployment.init(BeanDeployment.java:232)
                ... 14 more
        Suppressed: javax.enterprise.inject.UnsatisfiedResolutionException: Unsatisfied dependency for type org.apache.camel.cdi.CdiCamelExtension and qualifiers [@Default]
        - java member: org.apache.camel.cdi.CdiCamelFactory#producerTemplate()
        - declared on PRODUCER METHOD bean [types=[java.lang.AutoCloseable, org.apache.camel.ProducerTemplate, java.lang.Object, org.apache.camel.Service], qualifiers=[@Default, @Uri(value = ""), @Any], target=org.apache.camel.ProducerTemplate producerTemplate(javax.enterprise.inject.spi.InjectionPoint ip, javax.enterprise.inject.Instance<org.apache.camel.CamelContext> instance, org.apache.camel.cdi.CdiCamelExtension extension), declaringBean=org.apache.camel.cdi.CdiCamelFactory]
                at io.quarkus.arc.processor.Beans.resolveInjectionPoint(Beans.java:486)
                at io.quarkus.arc.processor.BeanInfo.init(BeanInfo.java:362)
                at io.quarkus.arc.processor.BeanDeployment.init(BeanDeployment.java:232)
                ... 14 more
        Suppressed: javax.enterprise.inject.UnsatisfiedResolutionException: Unsatisfied dependency for type org.apache.camel.cdi.CdiCamelExtension and qualifiers [@Default]
        - java member: org.apache.camel.cdi.CdiCamelFactory#consumerTemplate()
        - declared on PRODUCER METHOD bean [types=[org.apache.camel.ConsumerTemplate, java.lang.AutoCloseable, java.lang.Object, org.apache.camel.Service], qualifiers=[@Default, @Any], target=org.apache.camel.ConsumerTemplate consumerTemplate(javax.enterprise.inject.spi.InjectionPoint ip, javax.enterprise.inject.Instance<org.apache.camel.CamelContext> instance, org.apache.camel.cdi.CdiCamelExtension extension), declaringBean=org.apache.camel.cdi.CdiCamelFactory]
                at io.quarkus.arc.processor.Beans.resolveInjectionPoint(Beans.java:486)
                at io.quarkus.arc.processor.BeanInfo.init(BeanInfo.java:362)
                at io.quarkus.arc.processor.BeanDeployment.init(BeanDeployment.java:232)
                ... 14 more
        Suppressed: javax.enterprise.inject.UnsatisfiedResolutionException: Unsatisfied dependency for type org.apache.camel.cdi.CdiCamelExtension and qualifiers [@Default]
        - java member: org.apache.camel.cdi.CdiCamelFactory#endpoint()
        - declared on PRODUCER METHOD bean [types=[java.lang.AutoCloseable, org.apache.camel.IsSingleton, java.lang.Object, org.apache.camel.Endpoint, org.apache.camel.Service], qualifiers=[@Uri(value = ""), @Any], target=org.apache.camel.Endpoint endpoint(javax.enterprise.inject.spi.InjectionPoint ip, javax.enterprise.inject.Instance<org.apache.camel.CamelContext> instance, org.apache.camel.cdi.CdiCamelExtension extension), declaringBean=org.apache.camel.cdi.CdiCamelFactory]
                at io.quarkus.arc.processor.Beans.resolveInjectionPoint(Beans.java:486)
                at io.quarkus.arc.processor.BeanInfo.init(BeanInfo.java:362)
                at io.quarkus.arc.processor.BeanDeployment.init(BeanDeployment.java:232)
                ... 14 more
        Suppressed: javax.enterprise.inject.UnsatisfiedResolutionException: Unsatisfied dependency for type org.apache.camel.cdi.CdiCamelExtension and qualifiers [@Default]
        - java member: org.apache.camel.cdi.CdiCamelFactory#mockEndpointFromMember()
        - declared on PRODUCER METHOD bean [types=[org.apache.camel.component.mock.MockEndpoint, java.lang.Object], qualifiers=[@Default, @Any], target=org.apache.camel.component.mock.MockEndpoint mockEndpointFromMember(javax.enterprise.inject.spi.InjectionPoint ip, javax.enterprise.inject.Instance<org.apache.camel.CamelContext> instance, org.apache.camel.cdi.CdiCamelExtension extension), declaringBean=org.apache.camel.cdi.CdiCamelFactory]
                at io.quarkus.arc.processor.Beans.resolveInjectionPoint(Beans.java:486)
                at io.quarkus.arc.processor.BeanInfo.init(BeanInfo.java:362)
                at io.quarkus.arc.processor.BeanDeployment.init(BeanDeployment.java:232)
                ... 14 more
        Suppressed: javax.enterprise.inject.UnsatisfiedResolutionException: Unsatisfied dependency for type org.apache.camel.cdi.CdiCamelExtension and qualifiers [@Default]
        - java member: org.apache.camel.cdi.CdiCamelFactory#fluentProducerTemplate()
        - declared on PRODUCER METHOD bean [types=[org.apache.camel.FluentProducerTemplate, java.lang.AutoCloseable, java.lang.Object, org.apache.camel.Service], qualifiers=[@Default, @Uri(value = ""), @Any], target=org.apache.camel.FluentProducerTemplate fluentProducerTemplate(javax.enterprise.inject.spi.InjectionPoint ip, javax.enterprise.inject.Instance<org.apache.camel.CamelContext> instance, org.apache.camel.cdi.CdiCamelExtension extension), declaringBean=org.apache.camel.cdi.CdiCamelFactory]
                at io.quarkus.arc.processor.Beans.resolveInjectionPoint(Beans.java:486)
                at io.quarkus.arc.processor.BeanInfo.init(BeanInfo.java:362)
                at io.quarkus.arc.processor.BeanDeployment.init(BeanDeployment.java:232)
                ... 14 more
        Suppressed: javax.enterprise.inject.UnsatisfiedResolutionException: Unsatisfied dependency for type org.apache.camel.cdi.CdiCamelExtension and qualifiers [@Default]
        - java member: org.apache.camel.cdi.CdiCamelFactory#cdiEventEndpoint()
        - declared on PRODUCER METHOD bean [types=[org.apache.camel.CamelContextAware, org.apache.camel.support.DefaultEndpoint, org.apache.camel.IsSingleton, org.apache.camel.support.service.ServiceSupport, org.apache.camel.ShutdownableService, org.apache.camel.cdi.CdiEventEndpoint<T>, java.lang.Object, org.apache.camel.SuspendableService, org.apache.camel.Endpoint, org.apache.camel.Service, org.apache.camel.StatefulService, java.lang.AutoCloseable, org.apache.camel.support.service.BaseService, org.apache.camel.spi.HasId], qualifiers=[@Default, @Any], target=org.apache.camel.cdi.CdiEventEndpoint<T> cdiEventEndpoint(javax.enterprise.inject.spi.InjectionPoint ip, javax.enterprise.inject.Instance<org.apache.camel.CamelContext> instance, org.apache.camel.cdi.CdiCamelExtension extension, javax.enterprise.event.Event<java.lang.Object> event) throws java.lang.Exception, declaringBean=org.apache.camel.cdi.CdiCamelFactory]
                at io.quarkus.arc.processor.Beans.resolveInjectionPoint(Beans.java:486)
                at io.quarkus.arc.processor.BeanInfo.init(BeanInfo.java:362)
                at io.quarkus.arc.processor.BeanDeployment.init(BeanDeployment.java:232)
                ... 14 more

共 (1) 个答案

  1. # 1 楼答案

    目前还没有办法做到这一点,尽管我知道为什么它可能有用

    欢迎打开GitHub问题,我们可以在这里讨论该请求