[Talk-es] Ayuda en trabajo con la librería "osm4j"

2015-12-03 Por tema Manuel Enrique Puebla Martínez

Ante todo mi agradecimiento a “Jesús Pérez Alcaide” por su ayuda, con ella
logré ejecutar el Hola Mundo en “OSM4j”, es una lástima que esté solo en el
repo de Gradle y no en el de MAVEN. 

El proxy sí es el que específico. Sucede que tengo la herramienta “cntlm”
que convierte a mi PC (localhost) en un proxy y “escucha” por el puerto
3128. 

Lo otro que me señalé sí tiene toda la razón, estaba mandando una URL sin
proxy ni nada. No obstante, al parecer los ejemplos de esta librería vienen
con ese error pues en la versión original del “Hola Mundo” solo aparecía
“InputStream input = new URL(query).openStream();” . Es decir, todo el otro
código relacionado con el proxy y el puerto lo agregué a raíz de sus
sugerencias con respecto al proxy de la MVJ.
http://docs.oracle.com/javase/7/docs/technotes/guides/net/proxies.html  

Saludos. 


___
Talk-es mailing list
Talk-es@openstreetmap.org
https://lists.openstreetmap.org/listinfo/talk-es


Re: [Talk-es] Ayuda en trabjo con la libreria "osm4j"

2015-12-03 Por tema Jesús Pérez Alcaide
Hola Manuel Enrique,

Me temo que tienes varios errores en tu código.

Primero, si el proxy al que te refieres es un proxy empresarial, dudo mucho
que su dirección sea "localhost:3128". Pregunta a tu administrador de red
por la dirección del proxy.

Segundo, tienes un error al abrir la conexión:

URL url = new URL(query);
URLConnection conn = url.openConnection(proxy);

En este punto ya tienes una conexión abierta (conn) usando el proxy
especificado.
Pero si luego haces esto:

// Open a stream
InputStream input = conn.getURL().openStream();

Estas obteniendo la URL original, que no indica nada de proxy, y estás
abriendo una nueva conexión sin especificar ningún proxy.

Lo correcto sería algo así:

URL url = new URL(query);
URLConnection conn = url.openConnection(proxy);

// Open a stream
InputStream input = conn.getInputStream();


Ten en cuenta también, que poniendo el proxy tal y como estás haciendo
(usando la clase Proxy) estás poniendo "a fuego" la dirección del proxy en
el código, por lo que será más difícil cambiar esa dirección cuando
ejecutes tu programa en otro ordenador, por ejemplo.
Esto te puede servir para una prueba puntual, pero te recomiendo que uses
otro método para configurar el proxy, por ejemplo, usando propiedades del
sistema, así:

java -Dhttp.proxyHost=myProxyServer -Dhttp.proxyPort=8080  MyJavaApp

Un saludo,
Jesús Pérez Alcaide.


El 2 de diciembre de 2015, 16:05, Manuel Enrique Puebla Martinez <
mpue...@uci.cu> escribió:

>
> Vean...con estos cambios para definir el proxy me sigue dando error cuando
> intento conectarme en "InputStream input = conn.getURL().openStream();".
>
> Creo que buscaré otra libreria para trabajar con OSM desde java.
>
> // Define a query to retrieve some data
>String query = "http://osmtestdata.topobyte.de/big-ben.osm";;
>
>SocketAddress addr = new InetSocketAddress("localhost", 3128);
>Proxy proxy = new Proxy(Proxy.Type.HTTP, addr);
>
> // // Open a stream
> // InputStream input = new URL(query).openStream();
>
>URL url = new URL(query);
>URLConnection conn = url.openConnection(proxy);
>
>// Open a stream
>InputStream input = conn.getURL().openStream();
>
>
>
>
> ___
> Talk-es mailing list
> Talk-es@openstreetmap.org
> https://lists.openstreetmap.org/listinfo/talk-es
>
>
___
Talk-es mailing list
Talk-es@openstreetmap.org
https://lists.openstreetmap.org/listinfo/talk-es