...
The ServiceMix FTP component provides JBI integration to the FTP servers. It can be used to read & write files over FTPor to periodically poll directories for new files.
Installation
Installing the servicemix-http component can be done in several ways:
- drop the installer zip in an hotdeploy directory monitored by ServiceMix
- using ant tasks
Note that when using ant tasks, the component is not started, you will have to start it manually using ant tasks or a console.
XBean deployment
You can deploy Service Units containing a file named xbean.xml for activating consumer and provider endpoints.
This xml file should respect the given syntax, though this is a spring based xml configuration file from where all beans of class HttpEndpoint are retrieved.
See a full example here. Note that you have to define the ftp namespace with
Code Block | ||||
---|---|---|---|---|
| ||||
<beans xmlns:ftp="http://servicemix.apache.org/ftp/1.0">
...
</beans>
|
Any numbers of endpoints can be specified in the xbean.xml file.
Poller endpoint
Poller endpoints can be used to poll a FTP server directory for files, download them, and send an InOnly JBI exchange to the configured JBI service.
The following snipped shows a minimal definition of a poller endpoint:
Code Block | ||
---|---|---|
| ||
<ftp:poller service="test:poller"
endpoint="endpoint"
targetService="test:receiver"
uri="ftp://servicemix:rocks@localhost/smx/test" />
|
Info | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sender endpoint
Sender endpoints are used are provider endpoints (in the JBI sense) which accepts incoming InOnly exchanges and write the content of the exchange to a file on the FTP server.
Here is an example of a simple sender endpoint.
Code Block | ||
---|---|---|
| ||
<ftp:sender service="test:service"
endpoint="endpoint"
uri="ftp://servicemix:rocks@localhost/smx/test" />
|
URI
You can use the familiar file URI to communicate with FTP servers. All types of endpoints use this standard URI to retrieve the needed parameters.
Code Block |
---|
ftp://[username[:password]@]host[:port]/path/to/something [path] |
where the parameters are:
username
: the login to use to access the FTP serverpassword
: the passwordhost
: adress of the FTP server (IP or name)port
: port of the FTP server (defaults to 21)path
: the directory on the FTP server to change into
Marshalers
By default, poller endpoints expect the content of the file to be an xml, and sender endpoints write the xml content of the imcoming NormalizedMessage to the remote file. This behavior can be customized by using a custom FileMarshaler.