我想通過我的java代碼連接到客戶端ftps服務器。我使用Apache公共庫來做到這一點。但是,我無法這樣做。任何人都可以幫助我這個。通過java連接到ftps站點
客戶端服務器使用FTPS /隱式SSL連接,並將數據連接使用Passive模式。
我的代碼如下:
public static void connectServer(String host, int port, String userName, String password) throws Exception {
FTPSClient client = new FTPSClient("SSL", true);
String remote = "Contact.xml";
File inFile = new File("C:/Documents/Applications/Contact.xml");
File outFile = new File("C:/Documents/Applications/Sample.xml");
InputStream input = new FileInputStream(inFile);
InputStream out = new FileInputStream(outFile);
try {
if(client.isConnected()){
client.disconnect();
}
client.connect(host,990);
client.enterLocalPassiveMode();
client.enterRemotePassiveMode();
client.login(userName, password);
client.setBufferSize((int)inFile.length()+100);
client.completePendingCommand();
System.out.println(client.printWorkingDirectory());
System.out.println(inFile.getAbsolutePath());
client.storeFile(remote, input);
out = client.retrieveFileStream("/folder/inputfeed.xml");
client.completePendingCommand();
client.logout();
} catch (Exception e) {
e.printStackTrace();
System.err.println(client.getReplyString());
} finally {
out.close();
input.close();
client.disconnect();
}
}
此代碼不拋出任何異常,但我沒有看到文件被複制到服務器,無論任何數據被複制到我的InputStream。另外,用於獲取工作目錄的sysout語句會返回正確的目錄。我也可以通過Filezilla和WinSCP連接到服務器。
請幫助,我陷入了這一點。
感謝
非常感謝您的答覆......我這個一個newbee。我確實改變了我的代碼,以便在登錄後移動被動模式並移除遠程被動模式,但結果沒有變化。我的文件仍然沒有被傳送,並且在檢索遠程文件時我沒有看到任何東西 – Vivek 2011-04-28 21:59:14
@Vivek你是如何解決它的? – 2016-12-12 07:26:20