[ 
https://issues.apache.org/jira/browse/CAMEL-13682?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Adam Ostrožlík updated CAMEL-13682:
-----------------------------------
    Environment: Camel 2.16.1, Windows 10 x64  (was: {color:#d4d4d4}Caused by: 
{color}{color:#ce9178}org.apache.camel.NoSuchBeanException{color}{color:#d4d4d4}:
 No bean could be found in the registry for: Found 
{color}{color:#569cd6}2{color}{color:#d4d4d4} beans of type: interface 
{color}{color:#569cd6}eu.unicorn.basse.ms.audit.api.store.AuditStore{color}{color:#d4d4d4}.
 Only one bean expected.{color}
{color:#ce9178}    at 
org.apache.camel.impl.CamelPostProcessorHelper.getInjectionBeanValue(CamelPostProcessorHelper.java:267){color}
{color:#ce9178}    at 
org.apache.camel.blueprint.handler.CamelNamespaceHandler$CamelInjector.injectFieldBean(CamelNamespaceHandler.java:826){color}
{color:#ce9178}    at 
org.apache.camel.blueprint.handler.CamelNamespaceHandler$CamelInjector.injectFields(CamelNamespaceHandler.java:800){color}
{color:#ce9178}    at 
org.apache.camel.blueprint.handler.CamelNamespaceHandler$CamelInjector.afterInit(CamelNamespaceHandler.java:922){color}
{color:#ce9178}    at 
org.apache.aries.blueprint.container.BeanRecipe.runBeanProcPostInit(BeanRecipe.java:744)[23:org.apache.aries.blueprint.core:1.4.4]{color}
{color:#ce9178}    at 
org.apache.aries.blueprint.container.BeanRecipe.internalCreate2(BeanRecipe.java:826)[23:org.apache.aries.blueprint.core:1.4.4]{color}
{color:#ce9178}    at 
org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:787)[23:org.apache.aries.blueprint.core:1.4.4]{color}
{color:#ce9178}    at 
org.apache.aries.blueprint.di.AbstractRecipe$1.call(AbstractRecipe.java:79)[23:org.apache.aries.blueprint.core:1.4.4]{color}
{color:#ce9178}    at 
java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_212]{color}
{color:#ce9178}    at 
org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:88)[23:org.apache.aries.blueprint.core:1.4.4]{color}
{color:#ce9178}    at 
org.apache.aries.blueprint.di.RefRecipe.internalCreate(RefRecipe.java:62)[23:org.apache.aries.blueprint.core:1.4.4]{color}
{color:#ce9178}    at 
org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:106)[23:org.apache.aries.blueprint.core:1.4.4]{color}
{color:#ce9178}    at 
org.apache.aries.blueprint.container.BeanRecipe.setProperty(BeanRecipe.java:931)[23:org.apache.aries.blueprint.core:1.4.4]{color}
{color:#ce9178}    at 
org.apache.aries.blueprint.container.BeanRecipe.setProperties(BeanRecipe.java:905)[23:org.apache.aries.blueprint.core:1.4.4]{color}
{color:#ce9178}    at 
org.apache.aries.blueprint.container.BeanRecipe.setProperties(BeanRecipe.java:886)[23:org.apache.aries.blueprint.core:1.4.4]{color}
{color:#ce9178}    at 
org.apache.aries.blueprint.container.BeanRecipe.internalCreate2(BeanRecipe.java:820)[23:org.apache.aries.blueprint.core:1.4.4]{color}
{color:#ce9178}    at 
org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:787)[23:org.apache.aries.blueprint.core:1.4.4]{color}
{color:#ce9178}    at 
org.apache.aries.blueprint.di.AbstractRecipe$1.call(AbstractRecipe.java:79)[23:org.apache.aries.blueprint.core:1.4.4]{color}
{color:#ce9178}    at 
java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_212]{color}
{color:#ce9178}    at 
org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:88)[23:org.apache.aries.blueprint.core:1.4.4]{color}
{color:#ce9178}    at 
org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:247)[23:org.apache.aries.blueprint.core:1.4.4]{color}
{color:#ce9178}    at 
org.apache.aries.blueprint.container.BlueprintRepository.createInstance(BlueprintRepository.java:230)[23:org.apache.aries.blueprint.core:1.4.4]{color}
{color:#ce9178}    at 
org.apache.aries.blueprint.container.BlueprintRepository.create(BlueprintRepository.java:145)[23:org.apache.aries.blueprint.core:1.4.4]{color}
{color:#ce9178}    at 
org.apache.aries.blueprint.container.BlueprintContainerImpl.getComponentInstance(BlueprintContainerImpl.java:754)[23:org.apache.aries.blueprint.core:1.4.4]{color}
{color:#d4d4d4}    ... {color}{color:#569cd6}39{color}{color:#d4d4d4} 
more{color})

> Wrong bean injection from OSGI
> ------------------------------
>
>                 Key: CAMEL-13682
>                 URL: https://issues.apache.org/jira/browse/CAMEL-13682
>             Project: Camel
>          Issue Type: Bug
>         Environment: Camel 2.16.1, Windows 10 x64
>            Reporter: Adam Ostrožlík
>            Priority: Minor
>
> We issued strange behaviour with our OSGI container setup using services - 
> references and injecting services into out beans using @BeanInject
> *bundle1*
>  
> *<!-- Both beans using same AuditStore interface -->*
> *<bean id="auditStore" class="store.AuditStoreImpl">
>     <property name="jdbcTemplate" ref="jdbcTemplate"/>
>     <tx:transaction method="*" value="Required"/>
> </bean>
> <bean id="auditStoreOut" class="store.AuditStoreOutImpl">
>     <property name="jdbcTemplate" ref="jdbcTemplate"/>
>     <tx:transaction method="*" value="Required"/>
> </bean>*
> *<service auto-export="interfaces" ref="auditStore"/>
> <service auto-export="interfaces" ref="auditStoreOut"/>*
> *bundle2*
>  
> {code:java}
> <reference id="auditStore" component-name="auditStore" 
> interface="eu.unicorn.basse.ms.audit.api.store.AuditStore"/>
> <bean class="SomeBean"/>
> {code}
> *-> injecting reference info bean*
> {code:java}
> class SomeBean {
>    @BeanInject
>    AuditStore auditStore;
> }
> {code}
> **From this point, I would expect that OSGI serves only one specific 
> implementation of interface by specifying component-name attribute but it 
> does not. 
> As a workaround we managed to inject the reverence using setter or specifing 
> name in @BeanInject annotation - *@BeanInject("auditStore")*
> I do not know if this is normal behaviour. Please, check this.
> Camel version 2.16.1



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to