Estoy desarrollando una aplicación que está compuesta por un applet y un servlet.
El applet ya lo tengo codificado y probado, y (a excepción de la parte de comunicaciones) funcionando.
El applet tiene que ir recogiendo datos que le proporciona el cliente, y formando una lista y enviándolas por una conexión URL, y después recoge el resultado que va a ser un string.
El código que utiliza el applet para conectarse al servidor es:
Código:
Por otra parte, el servlet tiene que recoger la lista que le ha enviado el applet, hacer una serie de cálculos y devolver el string resultado.private String conectarServidor () { String respuesta = ""; try { //Creacion del la URL URL pagina = this.getCodeBase(); String protocolo = pagina.getProtocol(); String servidor = pagina.getHost(); int puerto = pagina.getPort(); String servlet = "/simulador"; 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); ObjectOutputStream oos = new ObjectOutputStream (conexion.getOutputStream()); oos.writeInt(numQubits); lista_puertas.guardarLista(oos); //Método probado oos.flush(); ObjectInputStream ois = new ObjectInputStream(conexion.getInputStream()); respuesta = (String) ois.readObject(); oos.close(); ois.close(); } catch (MalformedURLException ex) { ex.printStackTrace(); } catch (IOException ex) { ex.printStackTrace(); } finally { return respuesta; } } //Fin del método conectarServidor
Código:
}protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ObjectInputStream ois = new ObjectInputStream(request.getInputStream()); int numQubits = ois.readInt lista_puertas.recuperarLista(ois); //Método probado output.recuperarLista(ois); //Método probado response.setContentType("application/x-java-serialized-object"); ObjectOutputStream oos = new ObjectOutputStream(response.getOutputStream()); oos.writeObject(this.ejecutarAlgoritmo()); //Método ejecutarAlgoritmo() probado, devuelve un string ois.close(); oos.close();
El caso es que al una vez creado el .war y con la aplicación desplegada en el servidor (utilizo tomcat), al ejecutarla salta la siguiente excepción:
Código:
Me he vuelto loca intentando solucionarlo yo sola pero no lo consigo, por lo que agradecería enormemente alguna ayudita.---------------------------------------------------- Detected from bootclasspath: C:\\PROGRA~2\\Java\\jre7\\lib\\deploy.jar java.io.StreamCorruptedException: invalid stream header: 3C212D2D at java.io.ObjectInputStream.readStreamHeader(Unknown Source) at java.io.ObjectInputStream.<init>(Unknown Source) at cliente.PruebasApplet.conectarServidor(PruebasApplet.java:1427) at cliente.PruebasApplet.boton_EjecutarActionPerformed(PruebasApplet.java:1387) at cliente.PruebasApplet.access$1700(PruebasApplet.java:26) at cliente.PruebasApplet$35.actionPerformed(PruebasApplet.java:817) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
Gracias y un saludo
Silvia.