我正在使用NetBeans创建一个java Web应用程序。我使用的其中一个模块需要解析本地存储在网络中的计算机上的xml文件,但是到达这些文件的最佳方法是什么?
我偶然发现了SO的各种线程有几个解决方案(SFTP,FTP,NFS,HTTP),但我无法弄清楚哪种最适合我的情况。
我们有一个所有Linux操作机器的网络,我可以通过ssh到达远程机器,因此知道它的IP地址。
ps我们不允许将文件存储在共享文件夹中:(
答案 0 :(得分:2)
首先连接到远程计算机。我更喜欢Jsch。以及连接和传输文件到我在下面给出的本地机器的代码。阅读和删除文件猜测应该是容易的工作! :)
public static void main(String[] args) {
String username = "your username";
String host = "192.*.*.*";
String pass = "password";
JSch jsch = null;
Session session = null;
Channel channel = null;
ChannelSftp c = null;
try {
jsch = new JSch();
System.out.println("Setting Up SFTP Connection...");
session = jsch.getSession(username, host, 22);
session.setPassword(pass);
System.out.println("SFTP Configration Complete..!");
java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);
System.out.println("Attempting to Connect..!");
session.setConfig("PreferredAuthentications","publickey,keyboard-interactive,password");
session.connect();
System.out.println("Session Connected.");
channel = session.openChannel("sftp");
channel.connect();
System.out.println("Channel Connected.");
c = (ChannelSftp) channel;
System.out.println("Connection Established\n");
} catch (Exception e) {
e.printStackTrace();
}
try {
String SourceFolderPath= "/hta1/home/pinDap75a/DestinationDemo/YOURFILE.XML";
String Destiantion = "C:/Users/Documents/";
System.out.println("Starting Downlaod...");
c.get(SourceFolderPath, Destiantion);
System.out.println("File Transfer Complete! \n");
}
catch (Exception e) { e.printStackTrace(); }
c.disconnect();
session.disconnect();
}}
答案 1 :(得分:0)