Hi, You can't do what you are trying to do here. The factory-method needs to return an object that represents the bean. In this case it returns void. It is not a very nice error, we shouldn't throw a NullPointerException.
In this scenario you are defining a bean without providing an instance that could back that bean. Alasdair 2011/2/22 Łukasz Dywicki <l...@code-house.org>: > Hello, > I have small problem with Aries. I try to configure jetty with blueprint. > Jetty requires to register some objects using void methods, for example: > Server.addConnector(Connector). > > I try to use blueprint XML: > > <bean id="server" class="org.eclipse.jetty.server.Server" > init-method="start" destroy-method="stop" > /> > > <bean id="http" factory-ref="server" factory-method="addConnector" > depends-on="jersey"> > <argument> > <bean > class="org.eclipse.jetty.server.nio.SelectChannelConnector"> > <property name="port" value="8080" /> > <property name="host" value="0.0.0.0" /> > </bean> > </argument> > </bean> > > This configuration causes following error: > org.apache.aries.blueprint - 0.2.0.incubating | Unable to start blueprint > container for bundle jetty-server > org.osgi.service.blueprint.container.ComponentDefinitionException: Unable to > instantiate components > at > org.apache.aries.blueprint.container.BlueprintContainerImpl.instantiateEager > Components(BlueprintContainerImpl.java:628)[7:org.apache.aries.blueprint:0.2 > .0.incubating] > at > org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintC > ontainerImpl.java:315)[7:org.apache.aries.blueprint:0.2.0.incubating] > at > org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintCon > tainerImpl.java:213)[7:org.apache.aries.blueprint:0.2.0.incubating] > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)[:1.6 > .0_21] > at > java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)[:1.6.0_21 > ] > at > java.util.concurrent.FutureTask.run(FutureTask.java:138)[:1.6.0_21] > at > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$ > 301(ScheduledThreadPoolExecutor.java:98)[:1.6.0_21] > at > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Sch > eduledThreadPoolExecutor.java:207)[:1.6.0_21] > at > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.ja > va:886)[:1.6.0_21] > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:9 > 08)[:1.6.0_21] > at java.lang.Thread.run(Thread.java:619)[:1.6.0_21] > Caused by: java.lang.NullPointerException > at > java.util.concurrent.ConcurrentHashMap.put(ConcurrentHashMap.java:881)[:1.6. > 0_21] > at > org.apache.aries.blueprint.container.BlueprintRepository.addPartialObject(Bl > ueprintRepository.java:357)[7:org.apache.aries.blueprint:0.2.0.incubating] > at > org.apache.aries.blueprint.di.AbstractRecipe.addPartialObject(AbstractRecipe > .java:84)[7:org.apache.aries.blueprint:0.2.0.incubating] > at > org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.ja > va:736)[7:org.apache.aries.blueprint:0.2.0.incubating] > at > org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:64)[ > 7:org.apache.aries.blueprint:0.2.0.incubating] > at > org.apache.aries.blueprint.container.BlueprintRepository.createInstances(Blu > eprintRepository.java:219)[7:org.apache.aries.blueprint:0.2.0.incubating] > at > org.apache.aries.blueprint.container.BlueprintRepository.createAll(Blueprint > Repository.java:147)[7:org.apache.aries.blueprint:0.2.0.incubating] > at > org.apache.aries.blueprint.container.BlueprintContainerImpl.instantiateEager > Components(BlueprintContainerImpl.java:624)[7:org.apache.aries.blueprint:0.2 > .0.incubating] > ... 10 more > > > -- Alasdair Nottingham n...@apache.org