Foros del Web » Programación para mayores de 30 ;) » Java »

Objeto en servlet

Estas en el tema de Objeto en servlet en el foro de Java en Foros del Web. Hola, tengo un problema con un servlet. Desde un applet me conecto con un servlet y quiero enviarle un objeto, en este caso un String. ...
  #1 (permalink)  
Antiguo 25/01/2008, 03:57
 
Fecha de Ingreso: diciembre-2007
Mensajes: 57
Antigüedad: 16 años, 4 meses
Puntos: 0
Objeto en servlet

Hola, tengo un problema con un servlet. Desde un applet me conecto con un servlet y quiero enviarle un objeto, en este caso un String. Creo que se lo mando bien y tambien creo que el servlet lo recoje bien, el caso esque no funciona porque ese objeto lo mando escribir en un archivo del servidor (lo hace el servlet logicamente) y no lo escribe. Si me pudierais decor donde fallo..... Muchisimas gracias
-----Applet-----
import java.net.*;
import java.io.*;

public class HelloApplet extends java.applet.Applet
{

public void init()
{
onSendData();
}

/**
* Get a connection to the servlet.
*/
private URLConnection getServletConnection()
throws MalformedURLException, IOException {

// Connection zum Servlet ýffnen
URL urlServlet = new URL(getCodeBase(), "http://localhost:8080/helloservlet/elhelloservlet");
URLConnection con = urlServlet.openConnection();

// konfigurieren
con.setDoInput(true);
con.setDoOutput(true);
con.setUseCaches(false);
con.setRequestProperty(
"Content-Type",
"application/x-java-serialized-object");


return con;
}

private void onSendData() {
try {
// get input data for sending
String input = "Quiero que te escribas";

// send data to the servlet
URLConnection con = getServletConnection();
OutputStream outstream = con.getOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(outstream);
oos.writeObject(input);
oos.flush();
oos.close();



} catch (Exception ex) {
ex.printStackTrace();
}
}

}

-------Servlet--------

import java.io.*;

import javax.servlet.http.*;
import javax.servlet.*;

public class HelloServlet extends HttpServlet
{


public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
try
{
String escribir=null;
response.setContentType("application/x-java-serialized-object");
InputStream in = request.getInputStream();
ObjectInputStream inputFromApplet = new ObjectInputStream(in);
try {

escribir=(String) inputFromApplet.readObject();

}
catch (Exception e)
{
System.out.println("Error al recuperar datos");
}



FileOutputStream ficheroEscritura = new FileOutputStream("test.txt");
ObjectOutputStream bufferSalida = new ObjectOutputStream(ficheroEscritura);
bufferSalida.writeObject(escribir);
bufferSalida.flush();
bufferSalida.close();


}
catch (IOException e)
{

}
}
}
  #2 (permalink)  
Antiguo 25/01/2008, 12:49
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: Objeto en servlet

¿Has depurado en los diferentes pasos para ver donde "pierdes" el string? Así por encima parece correcto, aunque no me he metido en detalle.

S!
  #3 (permalink)  
Antiguo 26/01/2008, 05:47
 
Fecha de Ingreso: diciembre-2007
Mensajes: 57
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Objeto en servlet

Creo que es aqui donde lo pierdo


ObjectInputStream inputFromApplet = new ObjectInputStream(in);
try {

escribir=(String) inputFromApplet.readObject();

}


Empiezo a pensar que a lo mejor no se lo mando bien, pero es la manera que se...
  #4 (permalink)  
Antiguo 26/01/2008, 13:14
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: Objeto en servlet

Puede ser que se te este llamando al doPost en vez de el doGet. ¿Lo has comprobado?

S!
  #5 (permalink)  
Antiguo 28/01/2008, 02:45
 
Fecha de Ingreso: diciembre-2007
Mensajes: 57
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Objeto en servlet

si, lo he comprobado, en un principio estaba implementado pero hice unos out.print y siempre se metia en el doGet.De hecho, una linea que he puesto que imprima antes de ese trozo la imprime. No consigo ver el fallo!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:41.