What endpoint do you send to with the producer template

On Fri, Aug 11, 2023 at 4:15 PM Reto Peter <reto.pe...@advanceit.ch> wrote:

> Hi
>
> I got an issue with the ProducerTemplate used inside a bean
> The Bean class called Resolvement.class injects the ProducerTemplate as
> follows:
>
>
> @EndpointInject
>
> private ProducerTemplate producer;
>
> inside the bean resolve() method, I do then use this producer like this:
>
> producer.requestBodyAndHeader(...)
>
> The method of the bean class is called by a camel route as follows:
>
> .split(simple("${body}"), new CSVFileAggregator())
>
> .parallelProcessing()
>
> .bean(Resolvement.class, "resolve")
>
> That normally works fine!
> But in some cases, I get an error like this:
> Caused by: java.lang.IllegalStateException: No producer, this processor
> has not been started: ProducerCache for source: toD20, capacity: 1000
>               at
> org.apache.camel.support.cache.DefaultProducerCache.doInAsyncProducer(DefaultProducerCache.java:300)
>               at
> org.apache.camel.processor.SendDynamicProcessor.process(SendDynamicProcessor.java:182)
>               at
> org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$SimpleTask.run(RedeliveryErrorHandler.java:477)
>               at
> org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.executeFromQueue(DefaultReactiveExecutor.java:212)
>               at
> org.apache.camel.impl.engine.DefaultReactiveExecutor.executeFromQueue(DefaultReactiveExecutor.java:77)
>               at
> org.apache.camel.impl.engine.DefaultAsyncProcessorAwaitManager.await(DefaultAsyncProcessorAwaitManager.java:96)
>               at
> org.apache.camel.impl.engine.DefaultAsyncProcessorAwaitManager.process(DefaultAsyncProcessorAwaitManager.java:85)
>               at
> org.apache.camel.impl.engine.SharedCamelInternalProcessor.process(SharedCamelInternalProcessor.java:108)
>               at
> org.apache.camel.support.cache.DefaultProducerCache.send(DefaultProducerCache.java:199)
>               at
> org.apache.camel.impl.engine.DefaultProducerTemplate.send(DefaultProducerTemplate.java:176)
>               at
> org.apache.camel.impl.engine.DefaultProducerTemplate.send(DefaultProducerTemplate.java:172)
>               at
> org.apache.camel.impl.engine.DefaultProducerTemplate.send(DefaultProducerTemplate.java:158)
>               at
> org.apache.camel.impl.engine.DefaultProducerTemplate.sendBodyAndHeader(DefaultProducerTemplate.java:229)
>
> That means for me, in some situations the Producer is not properly
> initialized.
>
> My question is:
> How can I make sure the producer is initialized properly?
> Is this a synchronization issue cause I do use parallelProcessing and I
> must use some synchronizing strategies?
> Or what could be the problem or the method to help for this issue?
>
> Camel Version: 3.20.6
> Java: 17
> Sping Boot 2.7.12
>


-- 
Claus Ibsen
-----------------
@davsclaus
Camel in Action 2: https://www.manning.com/ibsen2

Reply via email to