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.

Reply via email to