Hi Claus, In addition to what i just wrote:
I saw your thread regarding similar problem: http://www.nabble.com/Problem-with-jetty-endpoint-td21228613s22882.html I tries adding all the camel-http dependencies (http://activemq.apache.org/camel/maven/camel-http/dependencies.html), ran mvn install but the problem still exists. Thanks. Liav Ezer wrote: > > 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--tp21351142s22882p21389401.html Sent from the Camel - Users mailing list archive at Nabble.com.