Integration Server 10.7 | Built-In Services Reference Guide | Client Folder | Summary of Elements in this Folder | pub.client:ftp
 
pub.client:ftp
WmPublic. Performs a series of FTP actions.
This service executes the following sequence:
1. Logs on to an FTP server.
2. Changes to a specified working directory.
3. Performs one of the following FTP commands: ls, put, or get.
4. Logs off the FTP server.
Important:Integration Server allows you to invoke the pub.client:ftp service to get a file from a remote FTP server and place it in the WmRoot folder, which may be a security concern.
Input Parameters
serverhost
String Name or IP address of the FTP server (for example, ftp.netscape.com).
serverport
String Port number of the FTP server (for example, 4566).
username
String Valid FTP user of the remote FTP server (for example, anonymous).
password
String Optional. Valid password of the FTP user.
command
String One of the following FTP commands: ls, put, or get.
dirpath
String Working directory of the FTP server (for example, /tmp/pub). If the directory does not exist, the server throws an exception.
transfermode
String One of two FTP file transfer modes: ascii or binary. The default is ascii.
transfertype
String One of two FTP data transfer types: passive or active. The default is active.
localfile
String When command is set to put, this parameter specifies the name of the local file you want to transfer. (If content is specified, this field is ignored.)
When command is set to get, this parameter specifies the name of the local file in which you want the retrieved content saved.
remotefile
String When command is set to put, this parameter specifies the name of the remote file in which you want the save the data you are sending.
When command is set to get, this parameter specifies the name of the remote file that you want to retrieve.
content
java.io.InputStream, byte[ ], or String Data to be transferred when command is set to put.
encoding
String Optional. Character set in which the document is encoded. Specify an IANA-registered character set (for example, ISO-8859-1).
This information is required to correctly convert the String object to bytes when performing a get. If parameter is null, the default JVM encoding is used.
serverencoding
String Optional. Specifies the encoding this service uses to convert the incoming FTP command string to encoded bytes that are supported by IANA and the FTP server. If the parameter is null, the service uses the 'UTF-8' character set to encode the FTP command String to bytes.
timeout
String Time (measured in seconds) this service waits for the FTP server response on the command channel before timing out and aborting the request. Default is to wait forever.
putunique
String Optional. Indicates whether to send a STOR or a STOU (Store as Unique File) command to the remote FTP server. Set to:
*true to send a STOU (Store as Unique File) command.
*false to send a STOR command. This is the default.
secure
Document Indicates whether the FTP session is with a secure FTP server.
Note:Integration Server does not support FTPS (FTP over SSL) requests through FTP proxy.
Key
Description
auth
String The kind of authentication mechanism to use: None, SSL, TLS, or TLS-P.
None specifies that the FTP session is with a non-secure FTP server. This is the default. If the value of auth is None, the securedata variable is ignored.
TLS-P is a shortcut that is equivalent to the sequence AUTH TLS, PBSZ 0, and PROT P. If the value of auth is TLS-P, the securedata variable is ignored.
securedata
String Use the value false for a client sending PROT C (Data Channel Protection Level Clear).
Use the value true for a client sending PROT P (Data Channel Protection Level Private).
Note:
If you do not set a value, the default is false.
useJSSE
String Optional. Whether to enable the use of the Java Secure Socket Extension (JSSE) library for creating outbound FTPS connections. Set to:
*yes if the connection requires the use of TLS 1.1, TLS 1.2, or TLS 1.3. When set to yes, Integration Server creates the connection using the Java Secure Socket Extension (JSSE) library.
*no if the connection does not require support for TLS 1.1, TLS 1.2, or TLS 1.3. When set to no, the connection supports only TLS 1.0 which is not secure. The Entrust IAIK library is used to create the outbound FTPS connection.
When the value of useJSSE is not specified, Integration Server uses the value set for the watt.net.ssl.client.ftps.useJSSE server configuration parameter.
Note: 
*A value of yes or no for the useJSSE input parameter overrides the value of the watt.net.ssl.client.ftps.useJSSE server configuration parameter.
*To control the cipher suites used on JSSE sockets that are used while making outbound FTPS requests, set the server configuration property watt.net.jsse.client.enabledCipherSuiteList. For more information, see Integration Server.
*When using this service to set up an FTPS connection over JSSE with an FTPS server, you must ensure that the FTPS port on the destination Integration Server is configured with the Use JSSE parameter set to Yes. For more information about configuring the FTPS port, see webMethods Integration Server Administrator’s Guide.
cleanlinefeeds
String Optional. Indicates whether the service should retain or remove carriage return characters at the end of each line of text. Set to:
*true to remove carriage returns. This is the default.
*false to retain carriage returns.
newSession
String Optional. Flag indicating whether a a new FTP session will be created for this FTP operation. Set to:
*yes to create a new session for this FTP operation.
*no to use the current session, if one is available, for this FTP operation. This is the default.
clientTimeout
String Optional. Specifies the idle time-out, measured in seconds, for this FTP session. If clientTimeout is set to 0 (zero), the session will never time out. The default is 600 seconds (10 minutes).
proxyAlias
String Optional. Name of the proxy server alias for the proxy server to which Integration Server routes the FTP request.
If you do not specify a proxyAlias, Integration Server routes the FTP request through the proxy server specified in the default FTP proxy alias. If there is no default FTP proxy alias, the action taken by Integration Server depends on the value specified for the watt.net.proxy.useNonDefaultProxies parameter.
*If the watt.net.proxy.useNonDefaultProxies parameter is set to true, Integration Server routes the FTP request through the proxy server in any configured FTP proxy alias. If the Integration Server does not have any defined FTP proxy aliases, Integration Server sends the FTP request directly to the FTP server or throws an exception depending on the settings specified for the watt.net.proxy.fallbackToDirectConnection parameter.
*If the watt.net.proxy.useNonDefaultProxies parameter is set to false, Integration Server sends the request to the remote server using a direct connection.
For more information about proxy server usage, refer to the section How Integration Server Uses Proxy Servers in the webMethods Integration Server Administrator’s Guide. How Integration Server Uses Proxy Servers.
Output Parameters
command
String FTP command that was executed (ls, get, or put).
dirlist
String List File names returned by the ls command.
localfile
String Name of the local file used for a get or put operation.
remotefile
String Name of the remote file used for a get or put operation.
content
byte[ ] If localfile was not specified, this parameter contains the Content object sent to the remote server (if a put command was executed) or received from the remote server (if a get command was executed).
returncode
String Standard FTP protocol return code.
returnmsg
String Standard FTP protocol return message.
logmsg
String FTP log message.
Usage Notes
If you set the auth variable in the secure parameter to SSL, TLS, or TLS-P, pub.client.ftp automatically sends the following sequence of FTP commands prior to sending the USER command:
AUTH <SSL | TLS | TLS-P> PBSZ 0 PROT <P | C>
The client FTP services will not negotiate for less security than you have specified with the auth parameter. However, if you set the auth variable to None, the client FTP services can operate (in a non-secure mode) with any FTP server.
The FTP services will always connect to a secure FTP server using a non-secure (SSL) socket. After getting a valid reply from the AUTH command, the FTP services will convert the connected socket to an SSL socket and initiate SSL handshaking.