openwebbeans-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Charles Moulliard <cmoulli...@gmail.com>
Subject Re: javax.enterprise.inject.UnsatisfiedResolutionException: Api type [org.apache.camel.component.cdi.CdiCamelContext] is not found with the qualifiers
Date Wed, 13 Jun 2012 16:12:48 GMT
Problem is also there if I add the example after the camel-cdi bundle.

Remark : I have also added the following code in Camel-cdi bundle with a
factory and @Produces but that does not help too

package org.apache.camel.component.cdi;

import javax.enterprise.inject.Produces;

public class CdiCamelContextFactory {

    @Produces
    public CdiCamelContext createContext() {
        return new CdiCamelContext();
    }
}



On Wed, Jun 13, 2012 at 6:09 PM, Romain Manni-Bucau
<rmannibucau@gmail.com>wrote:

> It is just to know if the error is here or not
> Le 13 juin 2012 17:49, "Charles Moulliard" <cmoulliard@gmail.com> a
> écrit :
>
> There is no possibility on the OSGI container to define an order for the
>> bundles deployed. So camel-cdi could be started after the example.
>> BTW, I think that the error will also be there if by example I start
>> KarafEE with only camel-cdi and and add the example just after.
>>
>> On Wed, Jun 13, 2012 at 5:43 PM, Romain Manni-Bucau <
>> rmannibucau@gmail.com> wrote:
>>
>>> Hi,
>>>
>>> Does camel-cdi start before the sample?
>>>
>>> - Romain
>>> Le 13 juin 2012 17:34, "Charles Moulliard" <cmoulliard@gmail.com> a
>>> écrit :
>>>
>>> Hi,
>>>>
>>>> I have deployed 2 bundles in Apache KarafEE (
>>>> https://svn.apache.org/repos/asf/openejb/trunk/openejb/osgi/apache-karafee/).
>>>> One contains the project camel-cdi (including a META-INF/beans.xml file)
>>>> and the other an example. When OpenEJB scans the example bundle, it
>>>> discovers annotated class presented here
>>>>
>>>> package com.fusesource.cdi.camel.simple;
>>>>
>>>> import org.apache.camel.component.cdi.CdiCamelContext;
>>>> import org.slf4j.Logger;
>>>> import org.slf4j.LoggerFactory;
>>>>
>>>> import javax.annotation.PostConstruct;
>>>> import javax.annotation.PreDestroy;
>>>> import javax.ejb.Singleton;
>>>> import javax.ejb.Startup;
>>>> import javax.inject.Inject;
>>>>
>>>>
>>>> /**
>>>>  * User: charlesmoulliard
>>>>  * Date: 16/02/12
>>>>  */
>>>> @Singleton
>>>> @Startup
>>>> public class BootStrap {
>>>>
>>>>     Logger logger = LoggerFactory.getLogger(BootStrap.class);
>>>>
>>>>     @Inject
>>>>     CdiCamelContext camelCtx;
>>>>
>>>>     @Inject
>>>>     SimpleCamelRoute simpleRoute;
>>>>
>>>> But the following error is generated :
>>>>
>>>> Caused by: org.apache.openejb.OpenEJBRuntimeException: javax.enterprise.inject.UnsatisfiedResolutionException:
Api type [org.apache.camel.component.cdi.CdiCamelContext] is not found with the qualifiers
>>>> Qualifiers: [@javax.enterprise.inject.Default()]
>>>> for injection into Field Injection Point, field name :  camelCtx, Bean Owner
: [BootStrap, Name:null, WebBeans Type:ENTERPRISE, API Types:[com.fusesource.cdi.camel.simple.BootStrap,java.lang.Object],
Qualifiers:[javax.enterprise.inject.Any,javax.enterprise.inject.Default]]
>>>> 	at org.apache.openejb.cdi.OpenEJBLifecycle.startApplication(OpenEJBLifecycle.java:341)[125:org.apache.openejb.core-osgi:4.1.0.SNAPSHOT]
>>>> 	at org.apache.openejb.cdi.ThreadSingletonServiceImpl.initialize(ThreadSingletonServiceImpl.java:134)[125:org.apache.openejb.core-osgi:4.1.0.SNAPSHOT]
>>>> 	... 11 more
>>>> Caused by: javax.enterprise.inject.UnsatisfiedResolutionException: Api type
[org.apache.camel.component.cdi.CdiCamelContext] is not found with the qualifiers
>>>> Qualifiers: [@javax.enterprise.inject.Default()]
>>>> for injection into Field Injection Point, field name :  camelCtx, Bean Owner
: [BootStrap, Name:null, WebBeans Type:ENTERPRISE, API Types:[com.fusesource.cdi.camel.simple.BootStrap,java.lang.Object],
Qualifiers:[javax.enterprise.inject.Any,javax.enterprise.inject.Default]]
>>>> 	at org.apache.webbeans.util.InjectionExceptionUtils.throwUnsatisfiedResolutionException(InjectionExceptionUtils.java:92)[97:openwebbeans-impl:1.1.4]
>>>> 	at org.apache.webbeans.container.ResolutionUtil.checkResolvedBeans(ResolutionUtil.java:98)[97:openwebbeans-impl:1.1.4]
>>>> 	at org.apache.webbeans.container.InjectionResolver.checkInjectionPoints(InjectionResolver.java:197)[97:openwebbeans-impl:1.1.4]
>>>> 	at org.apache.webbeans.container.BeanManagerImpl.validate(BeanManagerImpl.java:1156)[97:openwebbeans-impl:1.1.4]
>>>> 	at org.apache.openejb.cdi.BeansDeployer.validate(BeansDeployer.java:268)[125:org.apache.openejb.core-osgi:4.1.0.SNAPSHOT]
>>>> 	at org.apache.openejb.cdi.BeansDeployer.validateInjectionPoints(BeansDeployer.java:221)[125:org.apache.openejb.core-osgi:4.1.0.SNAPSHOT]
>>>> 	at org.apache.openejb.cdi.OpenEJBLifecycle.startApplication(OpenEJBLifecycle.java:298)[125:org.apache.openejb.core-osgi:4.1.0.SNAPSHOT]
>>>> 	... 12 more
>>>>
>>>> Is it because the CdiCamelContext has not been instantiated when it calls
the @Inject ? What could be the workaround ?
>>>>
>>>> Regards,
>>>>
>>>> Charles Moulliard
>>>>
>>>> Apache Committer
>>>>
>>>> Blog : http://cmoulliard.blogspot.com
>>>> Twitter : http://twitter.com/cmoulliard
>>>> Linkedin : http://www.linkedin.com/in/charlesmoulliard
>>>> Skype: cmoulliard
>>>>
>>>>
>>

Mime
View raw message