Estaba intentando utilizar Apache Ant Get
task para obtener una lista de WSDL generados por otro equipo de nuestra empresa. Los tienen alojados en un servidor wexical 9.x en http://....com:7925/services/. Puedo acceder a la página a través de un navegador, pero la tarea get me da una excepción FileNotFoundException cuando intento copiar la página a un archivo local para analizar. Todavía pude obtener (utilizando la tarea ant) una URL sin el puerto 80 no estándar para HTTP.URLConnection FileNotFoundException para orígenes de puerto HTTP no estándar
Miré a través del código fuente de Ant y reduje el error a URLConnection. Parece que URLConnection no reconoce que los datos son tráfico HTTP, ya que no están en el puerto estándar, aunque el protocolo se especifique como HTTP. Detecté el tráfico con WireShark y la página se carga correctamente a través del cable, pero todavía recibe la excepción FileNotFoundException.
Aquí hay un ejemplo en el que verá el error (con la URL modificada para proteger a los inocentes). El error se produce en 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());
}
}
}
Ahora supongo que es un tipo pero su enlace está en el puerto 7924 y su código está mirando en el puerto 7925 – Gandalf
Sí, era un error tipográfico, corregido ahora, gracias. – jeffl8n