camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tobias Hofer <tobias.ho...@basis06.ch>
Subject Re: NoSuchComponentException in CamelContext during Karaf Shutdown
Date Tue, 07 May 2013 06:28:29 GMT
Hello everybody,

I did some more tests and found out, that the described issue does
not exist in a setting with Karaf 2.2.11 and Camel 2.10.4.

I suggest to open a bug for Camel 2.11.

Regards,
Tobias

----- Original Message -----
> From: "Tobias Hofer" <tobias.hofer@basis06.ch>
> To: users@camel.apache.org
> Sent: Thursday, May 2, 2013 10:18:54 AM
> Subject: Re: NoSuchComponentException in CamelContext during Karaf Shutdown
> 
> Thanks for the hint. I forgot to check that.
> 
> I switched now to Camel 2.11.0 but the problem still exists. The
> behavior is
> exactly the same as I already described.
> 
> Regards,
> Tobias
> 
> ----- Original Message -----
> > From: "Claus Ibsen" <claus.ibsen@gmail.com>
> > To: users@camel.apache.org
> > Sent: Thursday, May 2, 2013 7:23:13 AM
> > Subject: Re: NoSuchComponentException in CamelContext during Karaf
> > Shutdown
> > 
> > Ah yeah you should use Karaf 2.2.x with Camel 2.10.x. And Karaf
> > 2.3.x
> > with Camel 2.11.x.
> > 
> > As documented here:
> > http://camel.apache.org/karaf
> > 
> > 
> > On Wed, May 1, 2013 at 11:08 PM, Christian Müller
> > <christian.mueller@gmail.com> wrote:
> > > Camel 2.10.x is only tested with Karaf 2.2.x.
> > >
> > > Sent from a mobile device
> > > Am 01.05.2013 10:41 schrieb "Tobias Hofer"
> > > <tobias.hofer@basis06.ch>:
> > >
> > >> Hi
> > >>
> > >> > Yeah would assume depends-on attributes ought to tell
> > >> > blueprint
> > >> > in
> > >> > which order to shutdown its beans etc.
> > >> > Or somehow you can try to get <camelContext> as being the
> > >> > first
> > >> > "bean"
> > >> > blueprint should try to shutdown, as then Camel will complete
> > >> > all its
> > >> > inflight messages first, and hence the <beans> should be
> > >> > shutdown
> > >> > later.
> > >> Exactly. Blueprint is responsible for computing the dependency
> > >> order. On
> > >> shutdown, the deconstruction must be done in reverse order.
> > >>
> > >> Therefore I tried to explicitly declare the dependency from
> > >> CamelContext
> > >> to Bean in order to get the CamelContext deconstructed first.
> > >>
> > >> Is Blueprint able to compute the dependencies for a
> > >> CamelContext?
> > >> Has it
> > >> any clue about the referenced beans?
> > >>
> > >> Does the CamelContext shutdown synchronously to the
> > >> deconstruction
> > >> request of Blueprint? If not, that could be a possible cause,
> > >> that
> > >> dependent Beans get destroyed even if CamelContext is still
> > >> alive.
> > >>
> > >>
> > >> > You can also enable cache on the bean endpoint to avoid the
> > >> > lookups
> > >> >
> > >> >   <bean uri="ref:myBean?cache=true" />
> > >> >
> > >> Yes this helps, but only for beans (component instances). If the
> > >> bean endpoint calls a OSGi service reference then call will fail
> > >> caused
> > >> by a ServiceUnavailableException.
> > >>
> > >>
> > >> > And when you see this error, does that only happen if the
> > >> > aggregator
> > >> > has messages that hasn't been fully aggregated, but are forced
> > >> > to be
> > >> > completed when stopping? eg this doesn't happen when stopping
> > >> > and the
> > >> > aggregator is empty?
> > >> Stopping it without any inflight and pending exchanges works. In
> > >> other
> > >> words, there error does not occur, if the aggregator did never
> > >> aggregate
> > >> a message, or if all messages has been aggregated before
> > >> shutdown.
> > >>
> > >> I'm able to stop the CamelContext manually at any time
> > >> successfully. Even
> > >> if there are pending messages that are forced to be completed
> > >> when
> > >> stopping.
> > >>
> > >> The error occurs only if I stop the whole Bundle.
> > >>
> > >>
> > >>
> > >> >
> > >> >
> > >> >
> > >> > On Tue, Apr 30, 2013 at 1:25 PM, Tobias Hofer
> > >> > <tobias.hofer@basis06.ch> wrote:
> > >> > > Hi all,
> > >> > >
> > >> > > I'm running Camel 2.10.4 in Karaf 2.3.1 and get
> > >> > > NoSuchComponentException
> > >> > > during the shutdown process.
> > >> > >
> > >> > > My blueprint configuration file declares a bean which is a
> > >> > > Camel
> > >> > > Processor
> > >> > >
> > >> > > <bean id="myBean" class="org.example.MyBean" />
> > >> > >
> > >> > > The CamelContext contains a route that aggregates incoming
> > >> > > messages
> > >> > > and
> > >> > > which forces a completion on stop.
> > >> > >
> > >> > > <route>
> > >> > >   <from uri="direct:aggregate" />
> > >> > >   <aggregate strategyRef="aggregationStrategy"
> > >> > >       forceCompletionOnStop="true" ...>
> > >> > >     ...
> > >> > >     <to uri="direct:onCompletion" />
> > >> > >   </aggregate>
> > >> > > </route>
> > >> > >
> > >> > > The second route contains the bean invocation
> > >> > >
> > >> > > <route>
> > >> > >   <from uri="direct:onCompletion" />
> > >> > >   ...
> > >> > >   <bean ref="myBean" />
> > >> > >   ...
> > >> > > </route>
> > >> > >
> > >> > > During shutdown the bean invocation in the second route
> > >> > > fails
> > >> > >
> > >> > > org.apache.camel.RuntimeCamelException:
> > >> > > org.osgi.service.blueprint.container.NoSuchComponentException:
> > >> > > No
> > >> > > component with id
> > >> > > 'myBean' could be found
> > >> > >         at
> > >> > >
> > >> org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException(ObjectHelper.java:1316)
> > >> > >         at
> > >> > >
> > >> org.apache.camel.impl.PropertyPlaceholderDelegateRegistry.lookup(PropertyPlaceholderDelegateRegistry.java:51)
> > >> > >         at
> > >> > >
> > >> org.apache.camel.component.bean.RegistryBean.lookupBean(RegistryBean.java:136)
> > >> > >         at
> > >> > >
> > >> org.apache.camel.component.bean.RegistryBean.getBean(RegistryBean.java:62)
> > >> > >         at
> > >> > >
> > >> org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:77)
> > >> > >         at
> > >> > >
> > >> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
> > >> > >         ...
> > >> > > Caused by:
> > >> > > org.osgi.service.blueprint.container.NoSuchComponentException:
> > >> > > No
> > >> > > component with id 'myBean' could be found
> > >> > >         at
> > >> > >
> > >> org.apache.aries.blueprint.container.BlueprintContainerImpl.getComponentInstance(BlueprintContainerImpl.java:742)
> > >> > >         at
> > >> > >
> > >> org.apache.camel.blueprint.BlueprintContainerRegistry.lookup(BlueprintContainerRegistry.java:41)
> > >> > >         at
> > >> > >
> > >> org.apache.camel.impl.CompositeRegistry.lookup(CompositeRegistry.java:68)
> > >> > >         at
> > >> > >
> > >> org.apache.camel.impl.PropertyPlaceholderDelegateRegistry.lookup(PropertyPlaceholderDelegateRegistry.java:49)
> > >> > >
> > >> > > I tried to add a 'depends-on' property on the CamelContext
> > >> > > declaration but
> > >> > > this seems not to help.
> > >> > >
> > >> > > It looks like that the Blueprint Container is no longer
> > >> > > available.
> > >> > >
> > >> > > Any suggestions?
> > >> > >
> > >> > > Regards,
> > >> > > Tobias Hofer
> > >> > >
> > >> > >
> > >> > >
> > >> > >
> > >> > >
> > >> >
> > >> >
> > >> >
> > >> > --
> > >> > Claus Ibsen
> > >> > -----------------
> > >> > Red Hat, Inc.
> > >> > FuseSource is now part of Red Hat
> > >> > Email: cibsen@redhat.com
> > >> > Web: http://fusesource.com
> > >> > Twitter: davsclaus
> > >> > Blog: http://davsclaus.com
> > >> > Author of Camel in Action: http://www.manning.com/ibsen
> > >> >
> > >>
> > 
> > 
> > 
> > --
> > Claus Ibsen
> > -----------------
> > Red Hat, Inc.
> > FuseSource is now part of Red Hat
> > Email: cibsen@redhat.com
> > Web: http://fusesource.com
> > Twitter: davsclaus
> > Blog: http://davsclaus.com
> > Author of Camel in Action: http://www.manning.com/ibsen
> > 
> 

Mime
View raw message