Hi Claus, Well i'll stick with the Http SMX provider end-point. I guess it's should integrate with camel routing with no problem.
Ok what i did is the advise you gave me a few answers ago: ProducerTemplate producer = exchange.getContext().createProducerTemplate(); Object response = producer.sendBody("http://localhost:8080/LiavHello/services/LiavHelloImpl", "Daviv"); And got this exception (SMX console after deply): : No endpoint could be found for: http://localhost:8080/LiavHello/services/LiavHelloImpl org.apache.camel.NoSuchEndpointException: No endpoint could be found for: http://localhost:8080/LiavHello/services/LiavHelloImpl LiavHelloImpl is the wsdlsoap:address location of the wsdl file representing the LiavHelloImp web project (under a running tomcat 6.0). Can you advise? It seems that the routing trying to be accomplished but something "configi" is messed up. Here is my provider xbean: <http:endpoint service="wsn:LiavHelloImplService" endpoint="wsn:LiavHelloImpl" role="provider" locationURI="http://localhost:8080/LiavHello/services/LiavHelloImpl" wsdlResource="c:/HTTPReceiverServices/LiavHelloImpl.wsdl" defaultMep="http://www.w3.org/2004/08/wsdl/in-out" soap="true" /> Thanks! Claus Ibsen-2 wrote: > > On Sat, Jan 10, 2009 at 3:02 PM, Liav Ezer <liav.e...@gmail.com> wrote: >> >> Hi Claus, >> >> I did follow this camel example & set up a timer 'from' end-point which >> my >> processor 'catched'. >> >> My will is to query this 'catched' data by sending it to a different >> end-point such as a service provider. >> >> Therefore, i deployed two SU's in my servicemix: One for the camel >> routing >> (timer example) & two is for >> >> the HTTP servicemix provider which i want to invoke in the proceesor. >> >> My question seems simple as long as an API exists for it: >> >> When my Processor class is instansiated than the process() method is >> invoked: >> >> public void process(Exchange exchange) throws Exception { >> >> The exchange.getIn() consist my 'from' end-point data (=the timer). >> >> I need the API to fetch the Http servicemix provider end-point & to send >> hime a request with this data. > If you want to send FROM Camel to SMX then you need to use the > camel-jbi component. That is you get endpoints FROM Camel starting > with the "jbi:" prefix. See camel-jbi component. > > > >> >> One extra small question: Do i need to replace my provider SU with a >> camel >> http producer SU? > If you are using SMX 3.x then you dont as SMX has one SU for Camel. > However if you need to use any of the other camel components from SMX > you need to have them in the classpath as well, such as > camel-http.jar. > > > (In SMX 4.x its all OSGi land and you need to install features into SMX.) > > A bit confused now. Which http provider do you want to use? > - SMX Http provider > - Camel http provider > > >> >> Thanks. >> >> Claus Ibsen-2 wrote: >>> >>> 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/ >>> >>> >> >> -- >> View this message in context: >> http://www.nabble.com/How-do-i-call-an-HTTP-Provider-end-pont-from-the-process-method--tp21351142s22882p21388391.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--tp21351142s22882p21389069.html Sent from the Camel - Users mailing list archive at Nabble.com.