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/

Reply via email to