Tengo un JSP en el que realizo la lectura de un archivo que se encuentra en otro servidor y lo voy mostrando en el navegador. Lo hace todo perfectamente pero lo que me extraña es que tarda mucho en mostrar el contenido, ya que a veces incluso se me ha quedado la ventana en "No responde", y si miro en el administrador de tareas, la CPU se me pone al 100%.
El caso es que son archivos grandes, pero tampoco demasiado, de entre 300-400KB a 4-5 MB. El código donde hago esto es el siguiente:
Código:
Para leer el archivo del otro servidor uso las librerías org.apache.commons.net.* y org.apache.commons.net.ftp.* del proyecto Jakarta Commons.FTPClient ftp = new FTPClient(); ftp.connect(server); ftp.login(user,pass); ftp.changeWorkingDirectory(folder); FTPFile[] files = ftp.listFiles(); ftp.setFileType(FTP.ASCII_FILE_TYPE); InputStream is = null; try{ is = ftp.retrieveFileStream(nombre); BufferedReader br = new BufferedReader(new InputStreamReader(is,"ISO-8859-1")); linea = br.readLine(); while (linea != null) { %><c:out value="<%= linea %>" escapeXml="true">null value</c:out> <br /> <% linea = br.readLine(); } if (is != null) { is.close(); } br.close(); }catch(Exception e){ e.printStackTrace(); } if(!ftp.completePendingCommand()){ // Logout del FTP Server y desconecto ftp.logout(); ftp.disconnect(); }
¿Alguna idea de cómo hacer para que no tarde tantísimo??
Muchas gracias!!
Un saludo