Utilizamos cookies propias y de terceros para mejorar la experiencia de navegación, y ofrecer contenidos y publicidad de interés.
Al continuar con la navegación entendemos que se acepta nuestra política de cookies.
Iniciar sesión Cerrar
Correo:
Contraseña:
Entrar
Recordar sesión en este navegador
Crear cuenta

Java - Error en el envio de url a servlet

Vista:
Me gusta: Está pregunta es útil y esta clara
0
No me gusta: Está pregunta no esta clara o no es útil
 
Asunto:Error en el envio de url a servlet
Autor:Javier (4 intervenciones)
Fecha:26/04/2007 13:43:25
Hola, tengo un problema con mi programa. Intento enviar una url a un servlet por método GET, sin embargo el mensage de error que me sale es 'El Metodo HTTP POST no es soportado por esta URL ', mi código es este:

public void doGet(HttpServletRequest req,HttpServletResponse res) throws IOException{
PrintWriter out=res.getWriter();
String protocol = "http";
String host = "localhost";
int port = 8080;
String file = "/DeegreeProject/wms";
URL url = new URL(protocol,host,port,file);
HttpURLConnection enlace = (HttpURLConnection) url.openConnection();

enlace.setRequestMethod("GET");
enlace.setDoOutput(true);
enlace.setDoInput(true);
OutputStreamWriter os = new OutputStreamWriter(enlace.getOutputStream(),"UTF-8");
os.write("GET" + url.toExternalForm()+ "HTTP/1.0\r\n");
os.write("Host: " + url.getHost()+"\r\n");
os.flush();
os.close();
out.println(enlace.getResponseMessage());
}

Alguien podría decirme porqué trata del método Post cuando todo está relacionado al método get?
Gracias
Responder Subir
información
Otras secciones de LWP con contenido similar...
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:RE:Error en el envio de url a servlet
Autor:chuidiang (949 intervenciones)
Fecha:26/04/2007 15:03:27
Url:
Hola:

Yo tuve un problema parecido. No sé cómo haces la petición desde el navegador, pero si simplemente pones algo como

http://servidor.com/servlet

es posible que el navegador haga la petición por método POST.

No profundicé en el tema, pero lo que hice para arreglarlo fue definir en el Servlet los dos métodos doPost() y doGet() de forma que doPost() simplemente llama a doGet(), que es el que realmente tiene el código

Puedes verlo en http://www.chuidiang.com/chuwiki/index.php?title=Servlet_y_Maven

Se bueno.
Comentar Subir
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:RE:Error en el envio de url a servlet
Autor:Javier (4 intervenciones)
Fecha:26/04/2007 15:28:44
Gracias por tu pronta respuesta.
He probado haciendo la llamada a doGet() desde doPost como me decías pero tampoco me funciona, y he visto tu página pero tampoco ahi está la solución.

Esque verás, estoy intentando utilizar el servidor de mapas Deegree, he conseguido poner mis capas y verlas, pero quiero tener yo el control de ellas. La situación es que desde el cliente, que es un archivo .jsp, envio los datos de las capas a mi servlet, y este servlet le envia los datos al Deegree, que utiliza otro servlet como receptor. Utilizo HttpURLConnection para conectar con el servlet de Deegree, y este necesita una url, cuyos parámetros son los datos de las capas de los mapas. Es ahi al enviarle los datos cuando recibo el mensaje 'El Metodo HTTP POST no es soportado por esta URL ', no entiendo muy bien porqué cuando todo lo envio por 'GET'. Incluso cuando pongo :
setRequestMethod("PUT")
me sale el mensaje 'El Metodo HTTP PUT no es soportado por esta URL ', si lo hago con post me sale el mismo mensaje pero con POST, solo cuando le pongo GET me sigue saliendo el mismo mensaje pero con POST, no lo entiendo. Seguro que es por algo que desconozco, por eso os pido ayuda.
Gracias de nuevo.
Comentar Subir
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:RE:Error en el envio de url a servlet
Autor:Gonzalo (180 intervenciones)
Fecha:26/04/2007 19:28:11
¿Realmente necesitas hace esto manualmente?
OutputStreamWriter os = new OutputStreamWriter(enlace.getOutputStream(),"UTF-8");
os.write("GET" + url.toExternalForm()+ "HTTP/1.0\r\n");
os.write("Host: " + url.getHost()+"\r\n");
os.flush();
os.close();

¿No te vale con usar enlace.connect() y dejar que haga la petición?
Comentar Subir