Questa è una servlet funzionante, un esempio tratto da onlava.com, non riesco a capire perché, dopo aver mappato la servlet su Tomcat, quando la richiamo da browser Firefox è in continuo "Trasferimento dati da xxx.it", potrebbe continuare all'infinito, senza nessun timeout del browser.
Ho scaricato le 3 librerie POI, ultime release, copiate sotto la /lib della web application, non va.
Se invece cancello tutto il codice e lascio solo l'impostazione del ContentType, ricompilo e richiamo la servlet da browser la servlet risponde immediatamente, anche se poi ovviamente l'output gestito da excel non è interpertato con successo, ma ci sta visto che non scrivo assolutamente niente.
Bah... suggerimenti? sembra così banale per non funzionare.. inoltre è stranissimo che sia in continuo trasferimento, almeno ci fosse un errore, ma niente...
codice:import java.io.*; import java.net.*; import javax.servlet.*; import javax.servlet.http.*; import org.apache.poi.hssf.usermodel.*; public class HSSFCreate extends HttpServlet { public void init(ServletConfig config) throws ServletException { super.init(config); } public void destroy() { } /** Processes requests for both HTTP GET and POST methods. * @param request servlet request * @param response servlet response */ protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("application/vnd.ms-excel"); HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.createSheet("new sheet"); // Create a row and put some cells in it. Rows are 0 based. HSSFRow row = sheet.createRow((short)0); // Create a cell and put a value in it. HSSFCell cell = row.createCell((short)0); cell.setCellValue(1); // Or do it on one line. row.createCell((short)1).setCellValue(1.2); row.createCell((short)2).setCellValue("This is a string"); row.createCell((short)3).setCellValue(true); // Write the output OutputStream out = response.getOutputStream(); wb.write(out); out.close(); } /** Handles the HTTP <code>GET</code> method. * @param request servlet request * @param response servlet response */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } /** Handles the HTTP POST method. * @param request servlet request * @param response servlet response */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); }

Rispondi quotando