Hi,

If they are in the same bundle context, why not refer the 
de.kisters.project.domain.impl.session.container.ContainerManager bean directly 
but not the service.

Your way run into the chicken-egg  problem, that said, your bundle depend on a 
service provided by the bundle itself.
-------------
Freeman(Yue) Fang

Red Hat, Inc. 
FuseSource is now part of Red Hat



On 2014-12-15, at 下午11:15, Andy Schmidt wrote:

> Hey,
> 
> we are trying to register a couple of blueprint services using Karaf 
> 3.0.2.
> 
> Two of those services (lets call them "service A" and "service B") are 
> located in one and the same bundle.
> Service A has a reference to service B.
> 
> We are getting the following exception:
> 
> org.osgi.service.blueprint.container.ComponentDefinitionException: Error 
> setting property: PropertyDescriptor <name: containerManager, getter: 
> null, setter: [class 
> de.kisters.kimatman.domain.impl.session.repository.RepositoryFactory.setContainerManager(interface
>  
> de.kisters.kimatman.domain.api.session.container.IContainerManager)] at 
> org.apache.aries.blueprint.container.BeanRecipe.setProperty(BeanRecipe.java:941)
>  
> at 
> org.apache.aries.blueprint.container.BeanRecipe.setProperties(BeanRecipe.java:907)
>  
> at 
> org.apache.aries.blueprint.container.BeanRecipe.setProperties(BeanRecipe.java:888)
>  
> at 
> org.apache.aries.blueprint.container.BeanRecipe.internalCreate2(BeanRecipe.java:820)
>  
> at 
> org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:787)
>  
> at 
> org.apache.aries.blueprint.di.AbstractRecipe$1.call(AbstractRecipe.java:79) 
> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) at 
> java.util.concurrent.FutureTask.run(FutureTask.java:166) at 
> org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:88) 
> at 
> org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:245)
>  
> at 
> org.apache.aries.blueprint.container.BlueprintRepository.createAll(BlueprintRepository.java:183)
>  
> at 
> org.apache.aries.blueprint.container.BlueprintContainerImpl.instantiateEagerComponents(BlueprintContainerImpl.java:681)
>  
> at 
> org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:378)
>  
> at 
> org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:269)
>  
> at 
> org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:276)
>  
> at 
> org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:245)
>  
> at 
> org.apache.aries.blueprint.container.BlueprintExtender.modifiedBundle(BlueprintExtender.java:235)
>  
> at 
> org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:500)
>  
> at 
> org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:433)
>  
> at 
> org.apache.aries.util.tracker.hook.BundleHookBundleTracker$AbstractTracked.track(BundleHookBundleTracker.java:725)
>  
> at 
> org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.bundleChanged(BundleHookBundleTracker.java:463)
>  
> at 
> org.apache.aries.util.tracker.hook.BundleHookBundleTracker$BundleEventHook.event(BundleHookBundleTracker.java:422)
>  
> at 
> org.apache.felix.framework.util.SecureAction.invokeBundleEventHook(SecureAction.java:1103)
>  
> at 
> org.apache.felix.framework.util.EventDispatcher.createWhitelistFromHooks(EventDispatcher.java:695)
>  
> at 
> org.apache.felix.framework.util.EventDispatcher.fireBundleEvent(EventDispatcher.java:483)
>  
> at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:4403) at 
> org.apache.felix.framework.Felix.startBundle(Felix.java:2092) at 
> org.apache.felix.framework.BundleImpl.start(BundleImpl.java:955) at 
> org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1245)
>  
> at 
> org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1217)
>  
> at 
> org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:509)
>  
> at 
> org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:358)
>  
> at 
> org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:310)
>  
> 
> 
> Caused by: java.lang.Exception: Unable to convert value 
> org.apache.aries.blueprint.container.ServiceRecipe$ServiceRegistrationProxy@20766905
>  
> to type de.kisters.kimatman.domain.api.session.container.IContainerManager 
> at 
> org.apache.aries.blueprint.container.AggregateConverter.convert(AggregateConverter.java:184)
>  
> at 
> org.apache.aries.blueprint.container.BlueprintRepository.convert(BlueprintRepository.java:402)
>  
> at 
> org.apache.aries.blueprint.utils.ReflectionUtils$PropertyDescriptor.convert(ReflectionUtils.java:394)
>  
> at 
> org.apache.aries.blueprint.utils.ReflectionUtils$MethodPropertyDescriptor.internalSet(ReflectionUtils.java:628)
>  
> at 
> org.apache.aries.blueprint.utils.ReflectionUtils$PropertyDescriptor.set(ReflectionUtils.java:378)
>  
> at 
> org.apache.aries.blueprint.container.BeanRecipe.setProperty(BeanRecipe.java:939)
>  
> ... 32 more 
> 
> Our blueprint files look like:
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0";
>        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xmlns:jpa="
> http://aries.apache.org/xmlns/jpa/v1.1.0";
>        xmlns:tx="http://aries.apache.org/xmlns/transactions/v1.0.0";
>        xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0 
> http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd
>                        http://camel.apache.org/schema/blueprint 
> http://camel.apache.org/schema/blueprint/camel-blueprint-2.8.0.xsd
>                        http://aries.apache.org/xmlns/transactions/v1.0.0 
> http://aries.apache.org/schemas/transaction/transactionv10.xsd
>                        http://aries.apache.org/xmlns/jpa/v1.1.0 
> http://aries.apache.org/schemas/jpa/jpa_110.xsd";>
> 
>        <service id="containerManagerId"
> 
> interface="de.kisters.project.domain.api.session.container.IContainerManager">
>                <bean
> class="de.kisters.project.domain.impl.session.container.ContainerManager" 
> />
>        </service>
> 
> 
> </blueprint>
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0";
>        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xmlns:jpa="
> http://aries.apache.org/xmlns/jpa/v1.1.0";
>        xmlns:tx="http://aries.apache.org/xmlns/transactions/v1.0.0";
>        xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0 
> http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd
>                        http://camel.apache.org/schema/blueprint 
> http://camel.apache.org/schema/blueprint/camel-blueprint-2.8.0.xsd
>                        http://aries.apache.org/xmlns/transactions/v1.0.0 
> http://aries.apache.org/schemas/transaction/transactionv10.xsd
>                        http://aries.apache.org/xmlns/jpa/v1.1.0 
> http://aries.apache.org/schemas/jpa/jpa_110.xsd";>
>        <bean
> 
> class="de.kisters.project.domain.impl.session.repository.RepositoryFactory"
>                init-method="activate" destroy-method="deactivate">
>                <property name="containerManager" ref="containerManagerId" 
> />
>        </bean>
> 
> </blueprint>
> 
> Do you have any hints how to solve the problem?
> 
> Best regards,
> 
> Andy & Tim
> --------------------------------------------------------------------------------------------------------------------------------------------
> Andy Schmidt - KISTERS AG - Pascalstraße 8+10 - 52076 Aachen - Germany
> Handelsregister Aachen, HRB-Nr. 7838 | Vorstand: Klaus Kisters, Hanns Kisters 
> | Aufsichtsratsvorsitzender: Dr. Thomas Klevers
> Phone: +49 2408 9385 -449 | Fax: +49 2408 9385 -555 | E-Mail: 
> [email protected] | WWW: http://www.kisters.de
> --------------------------------------------------------------------------------------------------------------------------------------------
> Diese E-Mail enthält vertrauliche und/oder rechtlich geschützte 
> Informationen. Wenn Sie nicht der richtige Adressat sind oder diese E-Mail 
> irrtümlich erhalten haben, informieren Sie bitte sofort den Absender und 
> vernichten Sie diese Mail. Das unerlaubte Kopieren sowie die unbefugte 
> Weitergabe dieser Mail ist nicht gestattet. 
> This e-mail may contain confidential and/or privileged information. If you 
> are not the intended recipient (or have received this e-mail in error) please 
> notify the sender immediately and destroy this e-mail. Any unauthorised 
> copying, disclosure or distribution of the material in this e-mail is 
> strictly forbidden.

Reply via email to