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