Я пытался использовать задачу Apache Ant Get
, чтобы получить список WSDL, сгенерированных другой командой в нашей компании. Они размещены на сервере weblogic 9.x на http://....com:7925/services/. Я могу перейти на страницу через браузер, но задача get дает мне FileNotFoundException при попытке скопировать страницу в локальный файл для разбора. Я все еще мог получить (используя задачу Ant) URL-адрес без нестандартного порта 80 для HTTP.
Я просмотрел исходный код 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());
}
}
}