Hi

Yeah its a bit mixed up since Camel and ServiceMix have classes with
common name: Endpoint, Exchange etc.

All the code I have shown assumes pure Camel code.

I advice to check the ServceMix docu about using Camel in ServiceMix.
And get a basic example running. Such as this example
http://servicemix.apache.org/camel-example.html

You could use that as a starting point to get Camel invoking your HTTP
server. Just let the timer start it.
Then later your can connect using SMX instead of the camel timer.



On Sat, Jan 10, 2009 at 12:53 PM, Liav Ezer <liav.e...@gmail.com> wrote:
>
> 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.
>
>



-- 

/Claus Ibsen
Apache Camel Committer
Blog: http://davsclaus.blogspot.com/

Reply via email to