Gert,
I used the producer templete to send messages into the nmr. Thank you.
For others, the code goes as follows
ProducerTemplate template =
exchange.getContext().createProducerTemplate();
template.sendBody("direct:jmsroute", "<response>job
response</response>");
in the route the following routes were added
from("direct:jmsroute")
.to("jbi:endpoint:http://www.jobsubmission/service/esi-india/jms/provider");
This is how one can access NMR within servicemix-camel without using
servicemixclient.
Regards,
Ganesh
Gert Vanthienen wrote:
>
> Ganesh,
>
> Ok, so it looks like the syntax without the # comes closer to what we
> want. Could you try adding a type or index as is indicated by the
> error message there?
> (cfr.
> http://static.springframework.org/spring/docs/2.0.x/reference/beans.html#beans-factory-ctor-arguments-type
> -- § 3.3.2.1 and § 3.3.2.2)
>
> As a workaround, I still think you can use the secondary route as I
> mentioned in my previous post. Instead of using the ServiceMix client
> in the loop to send messages to the NMR directly, you could just grab
> a Camel ProducerTemplate to send Camel messages to the direct endpoint
> and let that take care of interacting with the NMR.
>
> Regards,
>
> Gert Vanthienen
> ------------------------
> Open Source SOA: http://fusesource.com
> Blog: http://gertvanthienen.blogspot.com/
>
>
>
> 2009/4/10 navigator09 <[email protected]>:
>>
>> Hi Gert,
>>
>> I tried injecting dependency using #jbi. This also fails with the stack
>> trace mentioned in servicemix_#jbi.log attached to the mail.
>>
>> The stack trace caused by dependency injection using 'jbi' is available
>> in
>> servicemix_jbi.log .
>>
>> In servicemix 3.2.2. the camel routes dont have the looping based on a
>> condition ( like for loops) capability. This logic has been added inside
>> a
>> processor. The logic requires access to nmr based on certain status. So I
>> am
>> using servicemixclient for the purpose.
>>
>> Regards,
>> Ganesh http://www.nabble.com/file/p22984089/servicemix_jbi.log
>> servicemix_jbi.log
>> http://www.nabble.com/file/p22984089/servicemix_%2523jbi.log
>> servicemix_%23jbi.log
>>
>>
>>
>> Gert Vanthienen wrote:
>>>
>>> Ganesh,
>>>
>>> Injecting the client the way you are doing should work. The only
>>> thing I can think of: could you try with #jbi instead of jbi in the
>>> client declaration? If that still doesn't work, could you post us the
>>> stacktrace that you're seeing?
>>>
>>> Second question though: why do you want to inject a ServiceMix client
>>> in there? If you want to access another service, wouldn't it be much
>>> easier to just create a second route in your Camel routebuilder
>>> (from("direct:b").to("jbi:endpoint:...") and then send a Camel
>>> exchange to the "direct:b" endpoint?
>>>
>>> Regards,
>>>
>>> Gert Vanthienen
>>> ------------------------
>>> Open Source SOA: http://fusesource.com
>>> Blog: http://gertvanthienen.blogspot.com/
>>>
>>>
>>>
>>> 2009/4/9 navigator09 <[email protected]>:
>>>>
>>>> Hi,
>>>>
>>>> I am trying to access ComponentContext inside servicemix-camel. I tried
>>>> the
>>>> following two approaches
>>>>
>>>> 1. created the following property inside the class which implements the
>>>> route builder
>>>>
>>>> private javax.jbi.component.ComponentContext context;
>>>>
>>>> public void setContext(ComponentContext context) {
>>>> this.context = context;
>>>> }
>>>> Expecting the dependency to be injected into the class extending the
>>>> route
>>>> builder as suggested by some forums. But it did not work.
>>>>
>>>> 2. I tried the following configuration with the xbean.xml of the camel
>>>>
>>>> <bean id="JobPollerService" class="poller.service.JobPollerService">
>>>> <property name="servicemixclient" ref="client" />
>>>> </bean>
>>>>
>>>> <bean id="client"
>>>> class="org.apache.servicemix.client.DefaultServiceMixClient">
>>>> <constructor-arg ref="jbi" />
>>>> </bean>
>>>>
>>>> and in the camel router I implemented the following method
>>>>
>>>> public static DefaultServiceMixClient client;
>>>> public void setContext(DefaultServiceMixClient client) {
>>>> log.debug("Injecting component context");
>>>> this.client= client;
>>>> }
>>>>
>>>> here it failed to create the bean client saying that the constructor is
>>>> incorrect. what is the right way to access ComponentContext or to
>>>> create
>>>> servicemixclient inside the servicemix-camel component.
>>>>
>>>> Regards,
>>>> Ganesh
>>>> --
>>>> View this message in context:
>>>> http://www.nabble.com/How-to-access-ComponentContext-inside-servicemix-camel-tp22972903p22972903.html
>>>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>>>
>>>>
>>>
>>>
>>> -----
>>> ---
>>> Gert Vanthienen
>>> http://gertvanthienen.blogspot.com
>>>
>>
>> --
>> View this message in context:
>> http://www.nabble.com/How-to-access-ComponentContext-inside-servicemix-camel-tp22972903p22984089.html
>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>
>>
>
>
> -----
> ---
> Gert Vanthienen
> http://gertvanthienen.blogspot.com
>
--
View this message in context:
http://www.nabble.com/How-to-access-ComponentContext-inside-servicemix-camel-tp22972903p23018362.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.