L.S., Agreeing with everything Jean-Baptiste told you. Just wanted to add one more thing: make sure to remove the trailing / in the ftp xbean.xml namespace uri. You'd better have those exactly the same in all you xbean.xml files
Regards, Gert Vanthienen ------------------------ Open Source SOA: http://fusesource.com Blog: http://gertvanthienen.blogspot.com/ 2009/7/28 Jean-Baptiste Onofré <[email protected]>: > Hi Lekkie, > > There is something strange in your routing. > > Regarding your xbean.xml files, it seems that the ftp poller target a HTTP > consumer. > I think that your mistake is here. > > The ftp poller fires an action when a new file come into place. It reads the > file content and send into the NMR as NormalizedMessage. > But, on the other hand, the HTTP consumer is waiting for HTTP request on the > defined URI. The HTTP consumer is a binding endpoint listening to "external" > HTTP call. It doesn't wait for incoming NormalizedMessage. > > In your case, you can fire the polled file to a HTTP provider (this is > correct). This HTTP provider can call an external WebService or another HTTP > consumer :). > > Regards > JB > > lekkie wrote: >> >> Hi Guys, >> >> I know a could of ppl might have come across this. >> >> I need to poll a file (xml formatted) over FTP and send the result file >> (of >> course thru NMR) to a consumer http service. I have defined separate SUs >> for >> the ftp poller and the http consumer and also an SU for the http provider. >> >> I have the following xbeans: >> >> xbeal.xml -> ftp poller >> <beans xmlns:ftp="http://servicemix.apache.org/ftp/1.0" >> xmlns:app="http://services.app/"> <!-- add the sender endpoint here --> >> <!-- add the poller endpoint here --> <ftp:poller >> service="app:ftppoller" >> endpoint="appftppoller" >> uri="ftp://app:a...@localhost/" >> targetService="app:orderIFServicesHttpConsumer" >> targetEndpoint="orderIFServicesHttpConsumer" >> recursive="true"> >> </ftp:poller> </beans> >> xbean.xml -> http consumer >> <beans xmlns:http="http://servicemix.apache.org/http/1.0" >> xmlns:app="http://services.app"> >> <!-- wsdlResource="classpath:OrderIFServices.wsdl" --> >> <http:endpoint service="app:orderIFServicesHttpConsumer" >> endpoint="orderIFServicesHttpConsumer" >> role="consumer" >> soap="true" >> targetService="app:OrderIFServices" >> >> locationURI="http://0.0.0.0:9000/services/app/OrderIFServices" >> defaultMep="http://www.w3.org/2004/08/wsdl/in-out"/> >> </beans> >> >> xbean.xml -> http provider >> <beans xmlns:http="http://servicemix.apache.org/http/1.0" >> xmlns:app="http://services.app"> >> <!-- wsdlResource="classpath:OrderIFServices.wsdl" --> >> <http:endpoint service="app:OrderIFServices" >> endpoint="OrderIFServicesHttpSoap11Endpoint" >> role="provider" >> soap="true" >> >> locationURI="http://192.168.0.5/app/services/OrderIFServices" >> defaultMep="http://www.w3.org/2004/08/wsdl/in-out"/> >> </beans> >> >> >> When deployed, it says Failed to process file: >> //xxx_16_07_09_00123454487.xml. Reason: >> javax.jbi.messaging.MessagingException: Could not find route for exchange: >> InOnly[ >> id: ID:192.168.0.3-122c175bca6-9:0 >> status: Active >> role: provider >> service: {http://services.app/}OrderIFServicesConsumerHttp >> in: >> >> Note that I can see all the services/endpoints on the JConsole. >
