我需要将文件(xml)传输到AS2服务器。我不太擅长这个沟通渠道,但我需要以编程方式进行。例如,发送到SFTP我正在使用此代码:
import com.jcraft.jsch.*;
.......
public void uploadViaSFTP (String fileToUpload, String sftp_host, String sftp_user, String sftp_psw)
{
int SFTPPORT = 22;
Session session = null;
Channel channel = null;
ChannelSftp channelSftp = null;
try{
JSch jsch = new JSch();
session = jsch.getSession(sftp_user,sftp_host,SFTPPORT);
session.setPassword(sftp_psw);
java.util.Properties config = new java.util.Properties();
//this line should be used only for testing, not for production
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);
session.connect();
channel = session.openChannel("sftp");
channel.connect();
channelSftp = (ChannelSftp)channel;
channelSftp.cd("/");
File f = new File(fileToUpload);
channelSftp.put(new FileInputStream(f), f.getName());
}catch(Exception ex){
ex.printStackTrace();
}
}
但现在我需要为AS2做同样的事情。我可以使用哪个库(openAS2)?有没有像SFTP一样简单的传输方法?
答案 0 :(得分:2)
您应该能够使用标准HTTPS组件和S / MIME附件,因为AS2是基于HTTP或HTTPS的安全层和使用规范。
我从(https://www.mkyong.com/java/java-https-client-httpsurlconnection-example/),AS2规范(http://www.ietf.org/rfc/rfc4130.txt)开始,这个例子来自github:(https://github.com/protocol7/smime-java-example)