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/