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.