Hi Claus, I noticed that i use an InOnly & tries changing it via the original Exchange object with no success.
Using you methode (requestBody), i get the following exception: ERROR - HttpComponent - Error processing exchange InOut[ id: ID:10.236.11.194-11eca7dd5b2-2:24 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> ] org.apache.servicemix.soap.SoapFault: Unexpected fault code: {http://www.w3.org/2003/05/soap-envelope}Server.userException at org.apache.servicemix.soap.marshalers.SoapReader.readFaultUsingDom(SoapReader.java:259) at org.apache.servicemix.soap.marshalers.SoapReader.readFaultUsingStax(SoapReader.java:341) at org.apache.servicemix.soap.marshalers.SoapReader.readSoapUsingStax(SoapReader.java:203) at org.apache.servicemix.soap.marshalers.SoapReader.read(SoapReader.java:89) at org.apache.servicemix.soap.marshalers.SoapReader.read(SoapReader.java:76) at org.apache.servicemix.http.processors.ProviderProcessor.process(ProviderProcessor.java:182) at org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:540) at org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:492) at org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46) at org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:610) at org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172) at org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:167) at org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675) at java.lang.Thread.run(Thread.java:595) My Code: ProducerTemplate producerTemplate = exchange.getContext().createProducerTemplate(); String body = "<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</q0:name></q0:sayHello></soapenv:Body></soapenv:Envelope>"; Object response = producerTemplate.requestBody("jbi:service:http://com.liav.oxp/esb/LiavHelloImplSvcService", body); Is it related again to my API or maybe it's a wrong use of my 'body' string? Thanks. Claus Ibsen-2 wrote: > > > > > 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/ > > -- View this message in context: http://www.nabble.com/How-do-i-call-an-HTTP-Provider-end-pont-from-the-process-method--tp21351142s22882p21413291.html Sent from the Camel - Users mailing list archive at Nabble.com.