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.

Reply via email to