Hi SMX is more strict with setting the correct exchange pattern - InOnly - InOut etc
We get this from the log > Error processing exchange InOnly So you should use InOut from Camel as its a http component that expects an InOut exchange pattern This is done by using the requestBody method instread of sendBody in the producer template So it should be: producer.requestBody("jbi:service:http://com.amdocs.oxp/esb/LiavHelloImplSvcService", request); On Mon, Jan 12, 2009 at 12:03 PM, Liav Ezer <liav.e...@gmail.com> wrote: > > Hi Claus, > > Ok, I progressed a bit but still has the a problem consuming my WS. > > Here is my Processor code (producer.sendBody() first arg' has changed). > > public void process(Exchange exchange) throws Exception { > ProducerTemplate producer = > exchange.getContext().createProducerTemplate(); > String payload = exchange.getIn().getBody(String.class); // == liav > String request = "<?xml version=\"1.0\" > encoding=\"UTF-8\"?><soapenv:Body><sayHello><name>"+payload+"</name></sayHello></soapenv:Body>"; > Object response = > producer.sendBody("jbi:service:http://com.amdocs.oxp/esb/LiavHelloImplSvcService", > request); > } > > This is the xbean of the SMX http Provider: > > <?xml version="1.0" encoding="UTF-8"?> > <beans xmlns:http="http://servicemix.apache.org/http/1.0" > xmlns:wsn="http://com.amdocs.oxp/esb" > xmlns="http://www.springframework.org/schema/beans" > xmlns:xsi="http://http://www.w3.org/2001/XMLSchema-instance" > xsi:schemaLocation="http://servicemix.apache.org/http/1.0 > http://servicemix.apache.org/schema/servicemix-http-3.3.1.3-fuse.xsd > http://www.springframework.org/schema/beans > http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> > > <http:endpoint service="wsn:LiavHelloImplSvcService" > endpoint="wsn:LiavHelloImplSvc" > role="provider" > > locationURI="http://localhost:8080/LiavHello2/services/LiavHelloImplSvc" > > wsdlResource="c:/HTTPReceiverServices/LiavHelloImplSvc.wsdl" > defaultMep="http://www.w3.org/2004/08/wsdl/in-out" > soap="true" /> > </beans> > > My question: > > By looking at the end-point invoke (via the producerTemplate) & at the > end-point config (xbean file), > > do you see a reason why my WS (LiavHelloImplSvcService) isn't consumed? > > Here is the current SMX log after deployment: > > ERROR - HttpComponent - Error processing exchange InOnly[ > id: ID:10.236.11.194-11eca7dd5b2-2:8 > status: Active > role: provider > service: {http://com.amdocs.oxp/esb}LiavHelloImplSvcService > endpoint: wsn:LiavHelloImplSvc > in: <?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope > xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" > xmlns:q0="http://service.app.esb.oxp.amdocs.com" xmlns:xsd=" > http://www.w3.org/2001/XMLSchema" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><q0:sayHello><q0:name>LiavFromRouterBuilder</q0:name></q0:sayHello></soapenv:B > ody></soapenv:Envelope> > ] > java.lang.Exception: Invalid status response: 500 > Thanks. > > Liav Ezer wrote: >> >> Hi Claus, >> >> What i managed to accomplish is that my producer is 'familiar' with my >> Provider end-point but from some reason it doesn't invoke my service (WS) >> & hence report an invalide status response (500). >> >> ERROR - HttpComponent - Error processing exchange InOnly[ >> id: ID:10.236.11.194-11ec622522e-2:96 >> status: Active >> role: provider >> service: {http://com.amdocs.oxp/esb}LiavHelloImplSvcService >> endpoint: wsn:LiavHelloImplSvc >> in: <?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope >> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" >> xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http >> ://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><sayHello><name>Liav</name></sayHello></soapenv:Body></soapenv:Envelope> >> ] >> >> This is my xbean.xml (it must be related to the end-point configuration): >> >> <http:endpoint service="wsn:LiavHelloImplSvcService" >> endpoint="wsn:LiavHelloImplSvc" >> role="provider" >> >> locationURI="http://localhost:8080/LiavHello2/services/LiavHelloImplSvc" >> >> wsdlResource="c:/HTTPReceiverServices/LiavHelloImplSvc.wsdl" >> defaultMep="http://www.w3.org/2004/08/wsdl/in-out" >> soap="true" /> >> >> Thanks. >> java.lang.Exception: Invalid status response: 500 >> >> >> >> >> >> Liav Ezer wrote: >>> >>> Hi Claus, >>> >>> I'm stuck with a problem that my servixmix is reporting a try to send a >>> request to the provider but appearantly it's not able to consume the >>> Provider's WS. >>> >>> Here is the console: >>> >>> ERROR - DeadLetterChannel - Failed delivery for exchangeId: >>> ID-LIAVE02/1441-1231673232762/0-2. On delivery attempt: 0 caught: >>> org.apache.camel.RuntimeCamelException: o >>> rg.apache.servicemix.camel.JbiException: >>> javax.jbi.messaging.MessagingException: Could not find route for >>> exchange: InOnly[ >>> id: ID:10.236.11.194-11ec5713753-2:7 >>> status: Active >>> role: provider >>> in: <?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope >>> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" >>> xmlns:q0="http://service.app.esb.oxp.amdocs.com" xmlns:xsd=" >>> http://www.w3.org/2001/XMLSchema" >>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><q0:sayHello><q0:name>liav-name</q0:name> >>> </q0:sayHello></soapenv:Body></soape >>> nv:Envelope> >>> ] for service: null and interface: null >>> >>> When i develpoed the WS i tested it via eclipse with success. >>> >>> Here is the xbean definition: >>> >>> <http:endpoint service="wsn:LiavHelloImplSvcService" >>> endpoint="wsn:LiavHelloImplSvc" >>> role="provider" >>> >>> locationURI="http://localhost:8080/LiavHello2/services/LiavHelloImplSvc" >>> >>> wsdlResource="c:/HTTPReceiverServices/LiavHelloImplSvc.wsdl" >>> defaultMep="http://www.w3.org/2004/08/wsdl/in-out" >>> soap="true" /> >>> >>> Why does it report null for the service & interface? >>> >>> Thanks. >>> >>> Claus Ibsen-2 wrote: >>>> >>>> On Sun, Jan 11, 2009 at 9:19 AM, Liav Ezer <liav.e...@gmail.com> wrote: >>>>> >>>>> Hi Claus, >>>>> >>>>> Yes, i changed the body (arg2 in the sendBody method) to be a SOAP >>>>> request >>>>> like the following: >>>>> >>>>> String request = "<soapenv:Envelope >>>>> xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' >>>>> xmlns:q0='http://service.app.esb.oxp.liav.com' >>>>> xmlns:xsd='http://www.w3.org/2001/XMLSchema' >>>>> xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'><soapenv:Body><q0:sayHello><q0:name>liav-name</q0:name> >>>>> </q0:sayHello></soapenv:Body></soapenv:Envelope>"; >>>>> >>>>> 1. Is it a correct payload to send a request? >>>> Yeah it should be something like that. You might need the <?xml >>>> version...> header. But try with and without it. >>>> >>>> >>>>> >>>>> 2. Does this method will return the provider response - The API shows >>>>> that >>>>> it returns an Object - should i cast it to be an 'Exchange' & extract >>>>> the >>>>> response from the provider? >>>> When you use Camel's producer template to do a request/reply then >>>> Camel will extract the response from the Exchange/IN or OUT/Message, >>>> so you just get the payload. The type is Object but it can be what SMX >>>> returns, so it could be some sort of XML holder such as >>>> org.w3c.Document. But try and see what kind of Object you get back. >>>> >>>> There are type converters in Camel that can convert it back to a >>>> String if you want to use that, or what else there is >>>> http://activemq.apache.org/camel/type-converter.html >>>> >>>> >>>> >>>>> >>>>> Thanks. >>>>> >>>>> Claus Ibsen-2 wrote: >>>>>> >>>>>> On Sat, Jan 10, 2009 at 8:51 PM, Liav Ezer <liav.e...@gmail.com> >>>>>> wrote: >>>>>>> >>>>>>> Hi Claus, >>>>>>> >>>>>>> I changed the notation as needed to: >>>>>>> >>>>>>> producer.sendBody("jbi:endpoint:http://localhost:8080/LiavHello/services/LiavHelloImpl", >>>>>>> "Netania"); >>>>>>> >>>>>>> SMX console now output some wierd error - googling it comes up with >>>>>>> some >>>>>>> xml parsing error: >>>>>>> >>>>>>> [Fatal Error] :1:1: Content is not allowed in prolog.DEBUG - >>>>>>> DeliveryChannelImpl - Exception processing: >>>>>>> ID:10.236.11.194-11ec1f3a450-2:291 in >>>>>>> DeliveryChannel{servicemix-camel} >>>>>>> ERROR - DeadLetterChannel - Failed delivery for >>>>>>> exchangeId: >>>>>>> ID-LIAVE02/4519-1231614935663/0-50. On delivery attempt: 0 caught: >>>>>>> org.apache >>>>>>> org.apache.servicemix.camel.JbiException: >>>>>>> javax.jbi.messaging.MessagingException: Could not find route for >>>>>>> exchange: >>>>>>> InOnly[ >>>>>>> id: ID:10.236.11.194-11ec1f3a450-2:291 >>>>>>> status: Active >>>>>>> role: provider >>>>>> Yeah when you send data to SMX you must remember that its expecting >>>>>> the payload to be according to the JBI spec. in XML format. So you >>>>>> should send the data as XML. >>>>>> >>>>>> "Content is not allowed in prolog" is a bit cryptical XML parser error >>>>>> stating that it could not find the <?xml ... ?> declaration in top of >>>>>> the content it was parsing. >>>>>> >>>>>> So you should send the payload as XML. >>>>>> >>>>>> BTW: Which version of SMX and Camel are you using? I think the missing >>>>>> method from X mails back could be because we added it in Camel 1.4.0 >>>>>> (I think). >>>>>> >>>>>> >>>>>> >>>>>>> >>>>>>> Claus Ibsen-2 wrote: >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> This is the SMX Provider xbean: >>>>>>>> >>>>>>>> <?xml version="1.0" encoding="UTF-8"?> >>>>>>>> <beans xmlns:http="http://servicemix.apache.org/http/1.0" >>>>>>>> xmlns:wsn="http://com.amdocs.oxp/esb" >>>>>>>> xmlns="http://www.springframework.org/schema/beans" >>>>>>>> xmlns:xsi="http://http://www.w3.org/2001/XMLSchema-instance" >>>>>>>> xsi:schemaLocation="http://servicemix.apache.org/http/1.0 >>>>>>>> http://servicemix.apache.org/schema/servicemix-http-3.3.1.3-fuse.xsd >>>>>>>> http://www.springframework.org/schema/beans >>>>>>>> http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> >>>>>>>> >>>>>>>> <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" /> >>>>>>>> </beans> >>>>>>>> Any clue? >>>>>>>> On Sat, Jan 10, 2009 at 4:17 PM, Liav Ezer <liav.e...@gmail.com> >>>>>>>> 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"); >>>>>>>> See below >>>>>>>> >>>>>>>> >>>>>>>>> >>>>>>>>> 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" /> >>>>>>>> When you want from Camel to call service on SMX then you must use >>>>>>>> the >>>>>>>> camel-jbi component that delegates to the SU in SMX. >>>>>>>> So you need to add the jbi prefix in front. >>>>>>>> See: http://activemq.apache.org/camel/jbi.html >>>>>>>> >>>>>>>> It should be something like this. By by all means I am not SMX >>>>>>>> expert >>>>>>>> (yet): >>>>>>>> producer.sendBody("jbi:service:wsn:LiavHelloImplService", "Daviv"); >>>>>>>> >>>>>>>> The jbi component have different notation so please check it out. >>>>>>>> >>>>>>>> If you manage to get it working, then please write back how to, so >>>>>>>> we >>>>>>>> can improve the documentation and help others in the future. >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>> >>>>>>>>> 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. >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> >>>>>>>> /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--tp21351142s22882p21390941.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--tp21351142s22882p21396985.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--tp21351142s22882p21412377.html > Sent from the Camel - Users mailing list archive at Nabble.com. > > -- /Claus Ibsen Apache Camel Committer Blog: http://davsclaus.blogspot.com/