All Packages  Class Hierarchy  This Package  Previous  Next  Index

Class com.ibm.as400.access.AS400FTP

java.lang.Object
   |
   +----com.ibm.as400.access.FTP
           |
           +----com.ibm.as400.access.AS400FTP

public class AS400FTP
extends FTP
implements Serializable
The AS400FTP class represents a client for the AS/400 FTP server. It is written to take advantage of AS/400 server features. Use the parent class, FTP, if you need a generic client.

AS400FTP does the following extra processing:

  1. Using the AS400 object to determine system name, userid and password so these properties can be shared with other Toolbox classes. If you use the FTP class, your application must set the system name, userid, and password in both the FTP class and other Toolbox classes.

    One restriction when the client is an AS/400 -- the userid and password must be set on the AS400 object in this environment. That is, *CURRENT will not work when connecting from one AS/400 to another AS/400.

  2. Automatically setting the current directory to the root of the AS/400 when a connection is made. If the FTP class is used, the root may be QSYS.LIB when a connection is made. The integrated file system name of objects in libraries must be used to access them. For example, /QSYS.LIB/MYLIB.LIB/MYFILE.FILE. See QSYSObjectPathName documentation for more information.

  3. Handling extra work necessary to put a save file to the AS/400. If you use the FTP class, you have to do the extra steps. The extra processing is done only if the extension of the file is .savf and the file will be put into an AS/400 library.

    The extra processing includes internally using Toolbox CommandCall to create the save file on the AS/400. The default *Public authority is *EXCLUDE. Use the setSaveFilePublicAuthority() method to change the *Public authority value specified on the create save file command.

No encryption is provided by this class. The userid and password flow un-encrypted to the server. This class is not SSL enabled.

The forward slash is the separator character for paths sent to the FTP server.

The following example puts a save file to the AS/400. Note the application does not set data transfer type to binary or use Toolbox CommandCall to create the save file. Since the extension is .savf, AS400FTP class detects the file to put is a save file so it does these step automatically.


Constructor Index

 o AS400FTP()
Constructs an AS400FTP object.
 o AS400FTP(AS400)
Constructs an AS400FTP object.

Method Index

 o cd(String)
Sets the current directory on the server to directory.
 o connect()
Connects to the server.
 o dir()
Lists the contents of the current working directory.
 o get(String)
Starts the process of getting a file from the server.
 o get(String, File)
Gets a file from the server.
 o get(String, String)
Gets a file from the server.
 o getCurrentDirectory()
Returns the current directory on the server.
 o getSaveFilePublicAuthority()
Returns the public authority of save files created by this object.
 o getSystem()
Returns the name of the server.
 o issueCommand(String)
Sends a command to the server, returning the reply from the server.
 o ls()
Lists the contents of the current working directory.
 o noop()
Sends the NOOP (no operation) command to the server.
 o put(File, String)
Puts a file to the server.
 o put(String)
Starts the process of putting a file to the server.
 o put(String, String)
Puts a file to the server.
 o pwd()
Returns the current directory on the server.
 o setCurrentDirectory(String)
Sets the current directory on the server to directory.
 o setDataTransferType(int)
Sets the data transfer type.
 o setPassword(String)
Calling setPassword() is valid only for FTP objects.
 o setSaveFilePublicAuthority(String)
Sets the public authority of save files created by this object.
 o setServer(String)
Calling setServer() is valid only for FTP objects.
 o setSystem(AS400)
Sets the name of the server.
 o setUser(String)
Calling setUser() is valid only for FTP objects.

Constructors

 o AS400FTP
 public AS400FTP()
Constructs an AS400FTP object. The AS400 object must be set before requests are sent to the server.

See Also:
setSystem
 o AS400FTP
 public AS400FTP(AS400 system)
Constructs an AS400FTP object.

Parameters:
server - The AS/400 to which to connect.

Methods

 o cd
 public boolean cd(String directory) throws IOException
Sets the current directory on the server to directory. The method is the same as setCurrentDirectory(). The message returned from the server is saved. Use getLastMessage() to retrieve it.

Parameters:
directory - The current directory to set on the server.
Returns:
true if directory changed; false otherwise.
Throws: IOException
If an error occurs while communicating with the server.
Overrides:
cd in class FTP
 o connect
 public synchronized boolean connect() throws UnknownHostException, IOException, IllegalStateException
Connects to the server. The AS400 object must be set before calling this method. Calling connect is optional. Methods that communicate with the server such as get, put, cd, and ls call connect() if necessary. The message returned from the server is saved. Use getLastMessage() to retrieve it.

Returns:
true if connection is successful; false otherwise.
Throws: UnknownHostException
If a path to the server cannot be found.
Throws: IOException
If an error occurs while connecting to the server.
Throws: IllegalStateException
If called before user and password are set.
Overrides:
connect in class FTP
See Also:
setSystem
 o dir
 public String[] dir() throws IOException
Lists the contents of the current working directory. File name and attributes are returned for each entry in the directory. An array of length zero is returned if the directory is empty.

Returns:
The contents of the directory as an array of Strings.
Throws: IOException
If an error occurs while communicating with the server.
Overrides:
dir in class FTP
 o get
 public InputStream get(String fileName) throws IOException, FileNotFoundException
Starts the process of getting a file from the server. AS400FTP opens the data connection to the server, then opens the file on the server and returns an input stream to the caller. The caller reads the file's data from the input stream. The source file is on the server, accessed via FTP so the path separator character (if any) must be a forward slash.

Parameters:
fileName - The file to get.
Returns:
An input stream to the file. The caller uses the input stream to read the data from the file. Null is returned if the connection to the server fails.
Throws: IOException
If an error occurs while communicating with the server.
Throws: FileNotFoundException
If the name is a directory or the name is not found.
Overrides:
get in class FTP
 o get
 public boolean get(String sourceFileName,
                    String targetFileName) throws IOException, FileNotFoundException
Gets a file from the server. The source file is on the server, accessed via FTP so the path separator character (if any) must be a forward slash. The target file is on the client, accessed via java.io so the path separator character (if any) must be client specific.

Parameters:
sourceFileName - The file to get on the server.
targetFileName - The file on the target file system.
Returns:
true if the copy was successful; false otherwise.
Throws: IOException
If an error occurs while communicating with the server.
Throws: FileNotFoundException
If the source file or the targe file cannot be accessed.
Overrides:
get in class FTP
 o get
 public boolean get(String sourceFileName,
                    File targetFile) throws IOException, FileNotFoundException
Gets a file from the server. The source file is on the server, accessed via FTP so the path separator character (if any) must be a forward slash. The target file is an instance of Java.io.file.

Parameters:
sourceFileName - The file to get on the server.
targetFileName - The file on the target file system.
Returns:
true if the copy was successful; false otherwise.
Throws: IOException
If an error occurs while communicating with the server.
Throws: FileNotFoundException
If the source file or the targe file cannot be accessed.
Overrides:
get in class FTP
 o getCurrentDirectory
 public String getCurrentDirectory() throws IOException
Returns the current directory on the server.

Returns:
The current directory on the server. Null is returned if the connection to the server fails.
Throws: IOException
If an error occurs while communicating with the server.
Overrides:
getCurrentDirectory in class FTP
 o getSaveFilePublicAuthority
 public String getSaveFilePublicAuthority()
Returns the public authority of save files created by this object. If this object detects putting a save file to the library file system of the AS/400, it will first create the save file by sending a CRTSAVF command to the AS/400. The method lets you set the *PUBLIC authority value on the CRTSAVF command. The default is *EXCLUDE.

Returns:
The authority granted to *PUBLIC.
 o getSystem
 public AS400 getSystem()
Returns the name of the server. Null is returned if no system has been set.

Returns:
The name of the server to which this object connects.
 o issueCommand
 public synchronized String issueCommand(String cmd) throws IOException
Sends a command to the server, returning the reply from the server.

The command is not altered before sending it to the server so it much be recognized by the server. Many FTP applications change commands so they are recognized by the server. For example, the command to get a list of files from the server is NLST, not ls. Many FTP applications convert ls to NLST before sending the command to the server. This method will not do the conversion.

Parameters:
command - The command to send to the server.
Returns:
The reply to the command. Null is returned if the connection to the server fails.
Throws: IOException
If an error occurs while communicating with the server.
Overrides:
issueCommand in class FTP
 o ls
 public String[] ls() throws IOException
Lists the contents of the current working directory. If the directory is empty, an empty list is returned.

Returns:
The contents of the directory as an array of Strings.
Throws: IOException
If an error occurs while communicating with the server.
Overrides:
ls in class FTP
 o noop
 public boolean noop() throws IOException
Sends the NOOP (no operation) command to the server. This request is most useful to see if the connection to the server is still active

Returns:
true if the request was successful, false otherwise.
Throws: IOException
If an error occurs while communicating with the server.
Overrides:
noop in class FTP
 o put
 public synchronized OutputStream put(String fileName) throws IOException
Starts the process of putting a file to the server. AS400FTP opens the data connection to the server, then opens the file on the server and returns an output stream to the caller. The caller then writes the file's data to the output stream.

Parameters:
fileName - The file to put.
Returns:
An output stream to the file. The caller uses the output stream to write data to the file. Null is returned if the connection to the server fails.
Throws: IOException
If an error occurs while communicating with the server.
Overrides:
put in class FTP
 o put
 public synchronized boolean put(String sourceFileName,
                                 String targetFileName) throws IOException
Puts a file to the server.

Parameters:
sourceFileName - The file to put.
targetFileName - The file on the server.
Returns:
true if the copy was successful; false otherwise.
Throws: IOException
If an error occurs while communicating with the server.
Overrides:
put in class FTP
 o put
 public synchronized boolean put(File sourceFileName,
                                 String targetFileName) throws IOException
Puts a file to the server.

Parameters:
sourceFileName - The file to put.
targetFileName - The file on the server.
Returns:
true if the copy was successful; false otherwise.
Throws: IOException
If an error occurs while communicating with the server.
Overrides:
put in class FTP
 o pwd
 public synchronized String pwd() throws IOException
Returns the current directory on the server. PWD is the ftp command Print Working Directory.

Returns:
The current directory on the server. Null is returned if the connection to the server fails.
Throws: IOException
If an error occurs while communicating with the server.
Overrides:
pwd in class FTP
 o setCurrentDirectory
 public synchronized boolean setCurrentDirectory(String directory) throws IOException
Sets the current directory on the server to directory. The method is the same as cd(). The message returned from the server is saved. Use getLastMessage() to retrieve it.

Parameters:
directory - The current directory to set on the server.
Returns:
true if directory changed; false otherwise.
Throws: IOException
If an error occurs while communicating with the server.
Overrides:
setCurrentDirectory in class FTP
 o setDataTransferType
 public void setDataTransferType(int transferType) throws IOException
Sets the data transfer type. Valid values are:

If a connection does not already exist, a connection is made to the server. The message returned from the server is saved. Use getLastMessage() to retrieve it.

Throws: IOException
If an error occurs while communicating with the server.
Overrides:
setDataTransferType in class FTP
 o setPassword
 public void setPassword(String password)
Calling setPassword() is valid only for FTP objects. An IllegalStateException is thrown if setPassword() is called on an AS400FTP object. SetPassword() is not needed because AS400FTP gets the password from the AS400 object.

Overrides:
setPassword in class FTP
 o setSaveFilePublicAuthority
 public void setSaveFilePublicAuthority(String publicAuthority) throws PropertyVetoException
Sets the public authority of save files created by this object. If this object detects putting a save file to the library file system of the AS/400, it will first create the save file by sending a CRTSAVF command to the AS/400. Through this method you can set the *PUBLIC authority used when sending the CRTSAVF command. The value is set only if the save file is created. The public authority of an existing save file is not changed.

Valid values are:

The default value is *EXCLUDE

Parameters:
publicAuthoirty - *PUBLIC authority.
Throws: PropertyVetoException
If the change is vetoed.
 o setServer
 public void setServer(String server) throws PropertyVetoException
Calling setServer() is valid only for FTP objects. An IllegalStateException is thrown if setServer() is called on an AS400FTP object. SetServer() is not needed because AS400FTP gets the system name from the AS400 object.

Throws: PropertyVetoException
If the change is vetoed.
Overrides:
setServer in class FTP
 o setSystem
 public synchronized void setSystem(AS400 system) throws PropertyVetoException
Sets the name of the server. The system name cannot be changed once a connection is made to the server.

Parameters:
system - The name of the server to which this object connects.
Throws: PropertyVetoException
If the change is vetoed.
 o setUser
 public void setUser(String user) throws PropertyVetoException
Calling setUser() is valid only for FTP objects. An IllegalStateException is thrown if setUser() is called on an AS400FTP object. SetUser() is not needed because AS400FTP gets the userid from the AS400 object.

Throws: PropertyVetoException
If the change is vetoed.
Overrides:
setUser in class FTP

All Packages  Class Hierarchy  This Package  Previous  Next  Index