- 论坛徽章:
- 0
|
最近因为项目中涉及到FTP下载功能,所以做了一个测试例子,可是连接服务器的时候老报如下异常:
java.lang.NullPointerException
at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:441)
at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:520)
at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:569)
at org.apache.commons.net.ftp.FTP.quit(FTP.java:781)
at org.apache.commons.net.ftp.FTPClient.logout(FTPClient.java:706)
at test.closeFTP(test.java:44)
at test.login(test.java:7
at test.main(test.java:85)
java代码如下:
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import org.apache.commons.net.ftp.FTPClient;
public class test {
/**
* 关闭FTP
*
* @param ftp
* ftp连接
*/
public static void closeFTP(FTPClient ftp) {
try {
if (ftp != null) {
ftp.logout();
ftp.disconnect();
ftp = null;
}
} catch (Exception ex3) {
ex3.printStackTrace();
}
}
/**
* 获取FTP连接
*
* @param ip
* ip地址
* @param account
* 账户
* @param password
* 密码
* @return ftp连接
*/
public static FTPClient login(String ip, String account, String password) {
FTPClient ftp = null;
try {
ftp = new FTPClient();
ftp.setDefaultTimeout(10000);
ftp.connect(ip, 21);
boolean status = ftp.login(account, password);
System.out.println("bbb"+status);
if (status == false) {
throw new Exception("login status false" ;
}
ftp.enterLocalPassiveMode();
ftp.setBufferSize(1024);
ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
} catch (Exception ex1) {
closeFTP(ftp);
return null;
}
return ftp;
}
public static void main(String[] args) {
try {
FTPClient ftp = test.login(ip, username, password);
} catch (Exception e) {
e.printStackTrace();
}
}
}
在此请教各位童鞋。。。。
|
|