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

Problema comunicación servlet/applet/jsp netbeans

Estas en el tema de Problema comunicación servlet/applet/jsp netbeans en el foro de Java en Foros del Web. Hola, Estoy utilizando Netbeans para hacer un servlet. El problema lo tengo en que al crear la aplicación web, el propio Netbeans te crea una ...
  #1 (permalink)  
Antiguo 25/10/2011, 10:44
 
Fecha de Ingreso: octubre-2011
Ubicación: Madrid
Mensajes: 20
Antigüedad: 12 años, 6 meses
Puntos: 1
Problema comunicación servlet/applet/jsp netbeans

Hola,

Estoy utilizando Netbeans para hacer un servlet. El problema lo tengo en que al crear la aplicación web, el propio Netbeans te crea una página "index.jsp" que es una página html.
Aunque añado el applet a dicha página, necesito crear un servlet que reciba datos (con un ObjectInputStream), y envíe una respuesta (con un ObjectOutputStream) para que el applet la muestre en uno de sus paneles. Lo he intentado de mil maneras posibles, y siempre me da el mismo error. "java.io.StreamCorruptedException: invalid stream header"

Lo que intuyo que pasa es que el stream de salida y el de entrada no se corresponden, pero no sé como arreglarlo. También pienso que puede ser que utiliza el jsp y el servlet, pero no sé cómo no utilizar el jsp, sino únicamente el servlet, que puede ser que por ahí venga el problema.

Bueno, para que entendais mejor os pongo los códigos.

Applet: Manda un entero al servidor, y luego recibe una lista como respuesta

Código:
private void conectarServidor () {
        
    try {
            
        //Creacion del la URL
        URL pagina = this.getCodeBase();
        String protocolo = pagina.getProtocol();
        String servidor = pagina.getHost();
        int puerto = pagina.getPort();
        String servlet = "/ServletListas";
        URL direccion = new URL (protocolo,servidor,puerto,servlet);

        //Apertura de la conexion
        URLConnection conexion = direccion.openConnection();
        conexion.setDoInput(true);
        conexion.setDoOutput(true);
        conexion.setUseCaches(false);
        
            try (ObjectOutputStream oos = new ObjectOutputStream (conexion.getOutputStream())) {
                int num = 10;
                oos.writeInt(num);
                oos.flush();
            }
        
            try (ObjectInputStream ois = new ObjectInputStream(conexion.getInputStream())) {
               Lista l = (Lista) ois.readObject();
               imprimirElementos(l.obtenerElementos());
            }
        
    } catch (MalformedURLException ex) {
        ex.printStackTrace();
    } catch (IOException ex) {
        ex.printStackTrace();
    } catch (ClassNotFoundException ex) {
        ex.printStackTrace();
    }
}
Donde imprimirElementos muestra los elementos en un jTextArea (está probado que funciona).


Servlet: Recoge el número que le ha mandado el cliente, crea una lista con ese número de elementos y se la envía al cliente.

Código:
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        
        ObjectInputStream ois = new ObjectInputStream(request.getInputStream());
        int num = ois.readInt();
              
        OutputStream a = (OutputStream) response.getOutputStream();
        response.setContentType("application/x-java-serialized-object");
        Lista lista = new Lista(num);
        try (ObjectOutputStream oos = new ObjectOutputStream(a)) {
            ois.writeObject(lista);
        }
    }
Bueno, creo que no me dejo nada. No sé si me habré explicado bien, pero agradecería una respuesta, porque ya no sé qué más hacer.

Un saludo.

Etiquetas: jsp, netbeans
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 01:08.