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.
