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.