Hi Claus again,

I addition to what i asked in my previouse response here is a question
regarding the producer snippet which you gave in your last answer:

I indeed wrote the following in my process() method:

ProducerTemplate producer = 
                          exchange.getCamelContext().createProducerTemplate(); 
                            Object response = 
                          
producer.sendBody("http://myserver.com/myapp?foo=bar";, "Liav Camel
POC"); 

but i don't have the camel context at hand (saying "The method
getCamelContext() is undefined for the type Exchange").
 & also do i need to deploy a camel http producer su instead of an http
service mix provider?

Claus Ibsen-2 wrote:
> 
> Hi
> 
> When you are working with ServiceMix you must use the JBI component in
> Camel
> http://activemq.apache.org/camel/jbi.html
> 
> So your endpoints should starting with "jbi:XXXX"
> 
> And ServiceMix has some Camel docu here:
> http://servicemix.apache.org/servicemix-camel.html
> 
> Could you take a look at this docu a bit. There might be some help there.
> 
> Try to get something more easier working with SMX and Camel and then
> later do the stuff you want with the dynamic add a camel context.
> 
> 
> On Sat, Jan 10, 2009 at 12:39 PM, Liav Ezer <liav.e...@gmail.com> wrote:
>>
>> Hi Claus,
>>
>> I read your tutorial & learnt from it. Thanks. I adopted the cxf
>> framework
>> for now.
>>
>> Regarding my project (as stated above in snippets):
>>
>> I planted the following camel routing logic at my processor class:
>>
>> process method - with camel:
>>
>> public void process(Exchange exchange) throws Exception {
>>
>>  CamelContext camel = new DefaultCamelContext();
>>  camel.start();
>>
>>  Component component = (Component)
>> camel.getComponent("http-provider-su");
>>
>>  Endpoint endpoint = (Endpoint) ((org.apache.camel.Component)
>> component).createEndpoint("provider:com.amdocs.oxp.esb");
>>
>>  exchange.getIn().setBody("Liav testing here!");
>>
>>  Producer producer = ((org.apache.camel.Endpoint)
>> endpoint).createProducer();
>>
>>  producer.start();
>>  producer.process(exchange);
>>  producer.stop();
>>
>>  //System.out.println(exchange.getIn().toString() + "process activated by
>> SU");
>> }
>>
>> And got the following exception while SA's jar was deployed:
>>
>> ERROR - DeadLetterChannel              - Failed delivery for exchangeId:
>> ID-LIAVE02/1885-1231586726193/0-0. On delivery attemp
>> java.lang.NullPointerException
>>        at
>> org.apache.servicemix.tutorial.camel.MyProcessor.process(MyProcessor.java:33)
>> at
>> org.apache.camel.impl.ProcessorEndpoint.onExchange(ProcessorEndpoint.java:92)
>>        at
>> org.apache.camel.impl.ProcessorEndpoint$1.process(ProcessorEndpoint.java:66)
>>        at
>> org.apache.camel.impl.converter.AsyncProcessorTypeConverter$ProcessorToAsyncProcessorBridge.process(AsyncProcessorT
>>        at
>> org.apache.camel.processor.SendProcessor.process(SendProcessor.java:75)
>>        at
>> org.apache.camel.processor.DeadLetterChannel.process(DeadLetterChannel.java:146)
>>        at
>> org.apache.camel.processor.DeadLetterChannel.process(DeadLetterChannel.java:90)
>>        at org.apache.camel.processor.Pipeline.process(Pipeline.java:101)
>>        at org.apache.camel.processor.Pipeline.process(Pipeline.java:85)
>>        at
>> org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:39)
>>        at
>> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:41)
>>        at
>> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:66)
>>        at
>> org.apache.camel.component.timer.TimerConsumer.sendTimerExchange(TimerConsumer.java:91)
>>        at
>> org.apache.camel.component.timer.TimerConsumer$1.run(TimerConsumer.java:48)
>>        at java.util.TimerThread.mainLoop(Timer.java:512)
>>        at java.util.TimerThread.run(Timer.java:462)
>>
>> Be advise that line 33 is:Endpoint endpoint = (Endpoint)
>> ((org.apache.camel.Component)
>> component).createEndpoint("provider:com.amdocs.oxp.esb");
>>
>> My questions:
>>
>> 1. As bolded above i "fetched" my provider su component by staing it's
>> name
>> - is it correct?
>>
>> 2. I used the following servicemix object (not camel's) since i work with
>> servicemix provider endpoint. That's the reason for all the casting in my
>> code:
>> import org.apache.servicemix.jbi.deployment.Component;
>> import org.apache.servicemix.jbi.framework.Endpoint;
>>
>> Is it correct?
>>
>> Thank again,
>> Liav Ezer.
>>
>>
>>
>>
>>
>> Claus Ibsen-2 wrote:
>>>
>>> Hi
>>>
>>> You can use the producer template to call an external http server and
>>> get the response.
>>>
>>> See this tutorial:
>>> http://activemq.apache.org/camel/tutorial-axis-camel.html
>>>
>>> From the section - integrating Camel
>>>
>>> Its kinda the same but its just uses the producer template to save a
>>> file. Its the same API for using any of the camel components.
>>>
>>> Little sidenote:
>>> And since you use InOut you should use: requestBody instread of
>>> sendBody. However Camel is not to stricky about this yet so if you use
>>> a send instead of request then it should work as well.
>>>
>>> The demo shows how to inject a producer template from spring into your
>>> bean class = your processor. when you have this template you can call
>>> the external http server and get the response using the requestBody
>>> method.
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> On Thu, Jan 8, 2009 at 1:46 PM, Liav Ezer <liav.e...@gmail.com> wrote:
>>>>
>>>> Hi,
>>>>
>>>> Here is my camel-context:
>>>>
>>>>  <camelContext id="camel"
>>>> xmlns="http://activemq.apache.org/camel/schema/spring";>
>>>>    <package>org.apache.servicemix.tutorial.camel</package>
>>>>  </camelContext>
>>>>
>>>>  <bean id="myProcessor"
>>>> class="org.apache.servicemix.tutorial.camel.MyProcessor"/>
>>>>
>>>> Here is my RouteBuilder java file:
>>>>
>>>> public class MyRouteBuilder extends RouteBuilder {
>>>>        public void configure() {
>>>>        from("timer://tutorial?fixedRate=true&delay=3000&period=10000")
>>>>                .setBody(constant(".....................Liav Camel
>>>> POC......................."))
>>>>                        .to("myProcessor");
>>>>
>>>>    }
>>>> }
>>>>
>>>> Here is my processor java file:
>>>> public class MyProcessor implements Processor {
>>>>          public void process(Exchange exchange) throws Exception {
>>>>              //WANT TO INITIATE A CALL TO http pROVIDER END POINT &
>>>> PASS
>>>> THE
>>>> 'FROM'
>>>>                  // PARAMETRS RECIEVED PROIRE TO THE PROCESSOR INVOKE.
>>>> }
>>>> }
>>>>
>>>> Thanks.
>>>> --
>>>> View this message in context:
>>>> http://www.nabble.com/How-do-i-call-an-HTTP-Provider-end-pont-from-the-process-method--tp21351142s22882p21351142.html
>>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>>
>>>>
>>>
>>>
>>>
>>> --
>>>
>>> /Claus Ibsen
>>> Apache Camel Committer
>>> Blog: http://davsclaus.blogspot.com/
>>>
>>>
>>
>> --
>> View this message in context:
>> http://www.nabble.com/How-do-i-call-an-HTTP-Provider-end-pont-from-the-process-method--tp21351142s22882p21387207.html
>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>
>>
> 
> 
> 
> -- 
> 
> /Claus Ibsen
> Apache Camel Committer
> Blog: http://davsclaus.blogspot.com/
> 
> 

-- 
View this message in context: 
http://www.nabble.com/How-do-i-call-an-HTTP-Provider-end-pont-from-the-process-method--tp21351142s22882p21387318.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to