java – apache commons net – completependingcommand返回false
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – apache commons net – completependingcommand返回false,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2196字,纯文字阅读大概需要4分钟。
内容图文
![java – apache commons net – completependingcommand返回false](/upload/InfoBanner/zyjiaocheng/777/9d6564f5b2734f20ac95d82065eefeda.jpg)
我正在使用apache commons网络库从FTP服务器获取文件.
我不需要下载整个文件,只是为了读取标题来确定文件大小.我用来做这个的库是metadata extractor
问题是,当我调用client.completePendingCommand()时,它总是返回false – 但是日期变量是正确打印的.我问过元数据提取器的开发人员,他不知道为什么返回false.有人有解释吗?我不确定是否可以忽略这个错误?
FTPClient client = new FTPHTTPClient(proxy settings);
InputStream stream = null;
try {
client.connect(FTPProperties.getInstance().getProperty("ftp.server"));
client.login(FTPProperties.getInstance().getProperty("ftp.username"), FTPProperties.getInstance().getProperty("ftp.password"));
client.enterLocalPassiveMode();
for (String path : paths) { //paths are the jpeg files to download
try {
stream = client.retrieveFileStream(p);
Metadata metadata = ImageMetadataReader.readMetadata(stream);
Directory directory = metadata.getDirectory(ExifSubIFDDirectory.class);
Date date = directory.getDate(ExifSubIFDDirectory.TAG_DATETIME_ORIGINAL);
System.out.println("DATE " + date);
} catch (IOException ex) {
Logger.getLogger(UploadImage.class.getName()).log(Level.SEVERE, null, ex);
} finally {
if(stream != null) {
stream.close();
}
if (in != null) {
in.close();
}
if (!client.completePendingCommand()) {
Logger.getLogger("Error");
}
}
}
} catch (Exception ex) {
Logger.getLogger(UploadImage.class.getName()).log(Level.SEVERE, null, ex);
} finally {
if (client != null && client.isConnected()) {
client.disconnect();
}
}
解决方法:
我不认为你做错了什么,我认为元数据提取器没有任何问题.您可能最好检查您正在检索的流可以正确处理,而不是使用completePendingCommand()作为成功的指示.元数据提取器可能已经通过在出现问题时抛出异常来为您执行此操作.
说明:
completePendingCommand()验证整个事务是否成功,成功或失败依赖于FTPClients应答代码,其范围为200< = replyCode< 300(http://commons.apache.org/proper/commons-net/apidocs/src-html/org/apache/commons/net/ftp/FTPReply.html#line.133).
我有类似的问题,发现我的FTPClient对象的回复代码为150,表示根据FTP服务器,交易尚未完成.答复代码150是肯定的初步答复,但未被分类为肯定完成答复(http://tools.ietf.org/html/rfc959第37页).我的观点是响应仍然是积极的,虽然我认为我已经完成了交易,但FTP服务器仍然认为我需要做一些事情.这可能是org.apache.commons.net.ftp.FTPClient或与其交互的FTP服务器的问题.
内容总结
以上是互联网集市为您收集整理的java – apache commons net – completependingcommand返回false全部内容,希望文章能够帮你解决java – apache commons net – completependingcommand返回false所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。