【发布时间】:2009-06-02 20:08:45
【问题描述】:
我试图使用 Apache Ant Get task 来获取我们公司另一个团队生成的 WSDL 列表。他们将它们托管在http://....com:7925/services/ 上的 weblogic 9.x 服务器上。我可以通过浏览器访问该页面,但是当尝试将页面复制到本地文件进行解析时,get 任务给了我一个 FileNotFoundException。我仍然能够(使用 ant 任务)获得一个没有用于 HTTP 的非标准端口 80 的 URL。
我查看了 Ant 源代码,并将错误缩小到 URLConnection。似乎 URLConnection 无法识别数据是 HTTP 流量,因为它不在标准端口上,即使协议被指定为 HTTP。我使用 WireShark 嗅探了流量,页面通过网络正确加载,但仍然收到 FileNotFoundException。
这是一个您将看到错误的示例(更改了 URL 以保护无辜者)。 connection.getInputStream();
上抛出错误import java.io.File;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
public class TestGet {
private static URL source;
public static void main(String[] args) {
doGet();
}
public static void doGet() {
try {
source = new URL("http", "test.com", 7925,
"/services/index.html");
URLConnection connection = source.openConnection();
connection.connect();
InputStream is = connection.getInputStream();
} catch (Exception e) {
System.err.println(e.toString());
}
}
}
【问题讨论】:
-
现在我假设它是一种类型,但您的链接位于端口 7924 并且您的代码正在查看端口 7925
-
是的,这是一个错字,现在更正了,谢谢。
标签: java ant urlconnection