在通过 HTTP 处理图像列表的类中,一个图像会引发 FNFE。第一个假设是该文件在目的地不存在 - 但它确实存在。该图像可以在浏览器中访问,也可以通过在同一台机器上运行的另一个 Java 应用程序(我编写的命令行测试用例)访问?
这是堆栈跟踪:
23-Apr-2012 17:23:57 uk.co.example.ExampleClass setImageUrl
WARNING: Exception setting image Url to http://images.example.co.uk/FPA-Midlands/MLO100316_01.jpg
java.io.FileNotFoundException: http://images.example.co.uk/FPA-Midlands/MLO100316_01.jpg
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1311)
at uk.co.example.ExampleClass.importFileFromUrl(ExampleClass.java:460)
这是原始代码:
private String importFileFromUrl(String imageUrl) throws IOException, CMException {
InputStream is = null;
String name = null;
if (imageUrl != null && imageUrl.startsWith("http")) {
URL url = new URL(imageUrl);
URLConnection urlc = url.openConnection();
is = urlc.getInputStream();
name = url.getFile();
name = name.substring(name.lastIndexOf('/') + 1);
} else if (StringUtils.isNotBlank(imageUrl)){
File f = new File (imageUrl);
name = f.getName();
is = new FileInputStream(f);
}
if (name != null && is != null) {
importFile(name, is);
}
return name;
}
因为sun.net.www.protocol.http.HttpURLConnection
该类出现在堆栈中,我想知道这是否是类加载器问题?我没有明确导入那个包 - 它不应该使用java.net
等效的吗?