Pessoal,
Tenho um sistema onde se faz upload de arquivos, e consultas através de dados em arquivos…
Eu queria saber como faz para que mais de uma pessoa possa acessar o sistema sem dar erro no java… por exemplo, duas pessoas fazendo consultas ou carregando arquivos…
tem a tela JSP, que enviará para um servlet específico o arquivo, este passará por algumas validações em classe, depois vai na DAO pega os dados, e retorna para classe para gerar arquivo de excel ou simplesmente mostra na tela de volta.
O erro se da quando chega na classe de criar excel, onde ele mistura os dois resultados e da erro…:
jxl.read.biff.BiffException: The input file was not found
at jxl.read.biff.File.<init>(File.java:124)
at jxl.Workbook.getWorkbook(Workbook.java:221)
at jxl.Workbook.getWorkbook(Workbook.java:198)
at br.com.simcard.CriarExcel.CriarPlanilhaColetivaNew(CriarExcel.java:784)
at br.com.simcard.dao.PlanilhaColetivaDAO.pesquisaSimCardCL(PlanilhaColetivaDAO.java:255)
at br.com.simcard.VerificarRegistroConsultaColetiva.Verificador(VerificarRegistroConsultaColetiva.java:147)
at br.com.simcard.VerificarRegistroConsultaColetiva.<init>(VerificarRegistroConsultaColetiva.java:201)
at br.com.simcard.UploadConsultaColetiva.anexos(UploadConsultaColetiva.java:43)
at servlet.br.com.simcard.ServletUploadConsultaColetiva.doPost(ServletUploadConsultaColetiva.java:152)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1001)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Meu método é esse...
public void CriarPlanilhaColetivaNew(String dispositivoCL, String simCardCL, String linhaCL, String erro, String dispositivo, String codTecnologia,
String apnConfigurada, String simCard, String linha,
String operadora, String apnProvisionada, String statusSIMCard,
String fonte, String imei, String imsi, String statusLinha,
String consDados, String matricula, String chamado, HttpServletResponse response)
throws Exception, IOException, BiffException,
ClassNotFoundException, SQLException {
// FORMATANDO FONTE
// Adicionando formato de fonte no título... se adicionar ", true"
// depois de bold adiciona Italico
WritableFont bold = new WritableFont(WritableFont.ARIAL, 10,
WritableFont.BOLD);
bold.setColour(Colour.WHITE);
WritableCellFormat arial10font = new WritableCellFormat(bold);
arial10font.setBackground(Colour.BLUE);
arial10font.setAlignment(Alignment.CENTRE);
arial10font.setBorder(Border.ALL, BorderLineStyle.MEDIUM, Colour.BLACK);
// Adicionando formato de fonte resultados... se adicionar ", true"
// depois de bold adiciona Italico
WritableFont bold2 = new WritableFont(WritableFont.ARIAL, 10);
WritableCellFormat arial10fontResult = new WritableCellFormat(bold2);
arial10fontResult.setAlignment(Alignment.CENTRE);
arial10fontResult.setBorder(Border.ALL, BorderLineStyle.THIN,
Colour.BLACK);
NomeArquivoExcel arquivoExcel = new NomeArquivoExcel();
File filename = arquivoExcel.NomeExcel();
File filename2 = new File(filename.toString());
if (!filename2.exists()) {
// Instanciando a classe q gera o novo arquivo do Excel
WritableWorkbook workbook = Workbook.createWorkbook(new File(
filename.toString()));
// Criando uma nova planilha
WritableSheet sheet = workbook.createSheet("Resultado 0", 0);
// col, lin Consultado
Label labelTitulo0 = new Label(0, 0, "Dispositivo Consultado", arial10font);
sheet.addCell(labelTitulo0);
Label labelTitulo1 = new Label(1, 0, "SIMCard Consultado", arial10font);
sheet.addCell(labelTitulo1);
Label labelTitulo2 = new Label(2, 0, "Linha Consultado", arial10font);
sheet.addCell(labelTitulo2);
Label labelTitulo3 = new Label(3, 0, "ERRO", arial10font);
sheet.addCell(labelTitulo3);
// col, lin
Label labelTitulo4 = new Label(4, 0, "Dispositivo", arial10font);
sheet.addCell(labelTitulo4);
Label labelTitulo5 = new Label(5, 0, "SIMCard", arial10font);
sheet.addCell(labelTitulo5);
Label labelTitulo6 = new Label(6, 0, "Linha", arial10font);
sheet.addCell(labelTitulo6);
Label labelTitulo7 = new Label(7, 0, "Tecnologia", arial10font);
sheet.addCell(labelTitulo7);
Label labelTitulo8 = new Label(8, 0, "APN Configurada", arial10font);
sheet.addCell(labelTitulo8);
Label labelTitulo9 = new Label(9, 0, "Operadora", arial10font);
sheet.addCell(labelTitulo9);
Label labelTitulo10 = new Label(10, 0, "APN Provisionada",
arial10font);
sheet.addCell(labelTitulo10);
Label labelTitulo11 = new Label(11, 0, "Status SIMCard", arial10font);
sheet.addCell(labelTitulo11);
Label labelTitulo12 = new Label(12, 0, "Fonte", arial10font);
sheet.addCell(labelTitulo12);
Label labelTitulo13 = new Label(13, 0, "IMEI", arial10font);
sheet.addCell(labelTitulo13);
Label labelTitulo14 = new Label(14, 0, "IMSI", arial10font);
sheet.addCell(labelTitulo14);
Label labelTitulo15 = new Label(15, 0, "Status Linha", arial10font);
sheet.addCell(labelTitulo15);
Label labelTitulo16 = new Label(16, 0, "Consumo de Dados",
arial10font);
sheet.addCell(labelTitulo16);
Label labelTitulo17 = new Label(17, 0, "Matrícula", arial10font);
sheet.addCell(labelTitulo17);
Label labelTitulo18 = new Label(18, 0, "Chamado", arial10font);
sheet.addCell(labelTitulo18);
int i = sheet.getRows();
// col, lin consultado
Label label0 = new Label(0, i, dispositivoCL, arial10fontResult);
sheet.addCell(label0);
Label label1 = new Label(1, i, simCardCL, arial10fontResult);
sheet.addCell(label1);
// col, lin
Label label2 = new Label(2, i, linhaCL, arial10fontResult);
sheet.addCell(label2);
Label label3 = new Label(3, i, erro, arial10fontResult);
sheet.addCell(label3);
Label label4 = new Label(4, i, dispositivo, arial10fontResult);
sheet.addCell(label4);
Label label5 = new Label(5, i, simCard, arial10fontResult);
sheet.addCell(label5);
Label label6 = new Label(6, i, linha, arial10fontResult);
sheet.addCell(label6);
Label label7 = new Label(7, i, codTecnologia, arial10fontResult);
sheet.addCell(label7);
Label label8 = new Label(8, i, apnConfigurada, arial10fontResult);
sheet.addCell(label8);
Label label9 = new Label(9, i, operadora, arial10fontResult);
sheet.addCell(label9);
Label label10 = new Label(10, i, apnProvisionada, arial10fontResult);
sheet.addCell(label10);
Label label11 = new Label(11, i, statusSIMCard, arial10fontResult);
sheet.addCell(label11);
Label label12 = new Label(12, i, fonte, arial10fontResult);
sheet.addCell(label12);
Label label13 = new Label(13, i, imei, arial10fontResult);
sheet.addCell(label13);
Label label14 = new Label(14, i, imsi, arial10fontResult);
sheet.addCell(label14);
Label label15 = new Label(15, i, statusLinha, arial10fontResult);
sheet.addCell(label15);
Label label16 = new Label(16, i, consDados, arial10fontResult);
sheet.addCell(label16);
Label label17 = new Label(17, i, matricula, arial10fontResult);
sheet.addCell(label17);
Label label18 = new Label(18, i, chamado, arial10fontResult);
sheet.addCell(label18);
// Escrevedo o arquivo em disco
workbook.write();
// Fechando a IO
workbook.close();
} else {
Workbook rw = Workbook.getWorkbook(new File(filename2.toString()));
WritableWorkbook wwb = Workbook.createWorkbook(
new File(filename2.toString()), rw);
WritableSheet sheet = wwb.getSheet(wwb.getNumberOfSheets() - 1);
int i = sheet.getRows();
int a = wwb.getNumberOfSheets();
if (i > 29999) {
sheet = wwb.createSheet("Resultado " + a, a + 1);
sheet = wwb.getSheet(a);
i = 1;
// col, lin consultado
Label labelTitulo0 = new Label(0, 0, "Dispositivo Consultado", arial10font);
sheet.addCell(labelTitulo0);
Label labelTitulo1 = new Label(1, 0, "SIMCard Consultado", arial10font);
sheet.addCell(labelTitulo1);
Label labelTitulo2 = new Label(2, 0, "Linha Consultado", arial10font);
sheet.addCell(labelTitulo2);
// ERRO
Label labelTitulo3 = new Label(3, 0, "ERRO", arial10font);
sheet.addCell(labelTitulo3);
// col, lin
Label labelTitulo4 = new Label(4, 0, "Dispositivo", arial10font);
sheet.addCell(labelTitulo4);
Label labelTitulo5 = new Label(5, 0, "SIMCard", arial10font);
sheet.addCell(labelTitulo5);
Label labelTitulo6 = new Label(6, 0, "Linha", arial10font);
sheet.addCell(labelTitulo6);
Label labelTitulo7 = new Label(7, 0, "Tecnologia", arial10font);
sheet.addCell(labelTitulo7);
Label labelTitulo8 = new Label(8, 0, "APN Configurada",
arial10font);
sheet.addCell(labelTitulo8);
Label labelTitulo9 = new Label(9, 0, "Operadora", arial10font);
sheet.addCell(labelTitulo9);
Label labelTitulo10 = new Label(10, 0, "APN Provisionada",
arial10font);
sheet.addCell(labelTitulo10);
Label labelTitulo11 = new Label(11, 0, "Status SIMCard",
arial10font);
sheet.addCell(labelTitulo11);
Label labelTitulo12 = new Label(12, 0, "Fonte", arial10font);
sheet.addCell(labelTitulo12);
Label labelTitulo13 = new Label(13, 0, "IMEI", arial10font);
sheet.addCell(labelTitulo13);
Label labelTitulo14 = new Label(14, 0, "IMSI", arial10font);
sheet.addCell(labelTitulo14);
Label labelTitulo15 = new Label(15, 0, "Status Linha",
arial10font);
sheet.addCell(labelTitulo15);
Label labelTitulo16 = new Label(16, 0, "Consumo de Dados",
arial10font);
sheet.addCell(labelTitulo16);
Label labelTitulo17 = new Label(17, 0, "Matrícula", arial10font);
sheet.addCell(labelTitulo17);
Label labelTitulo18 = new Label(18, 0, "Chamado", arial10font);
sheet.addCell(labelTitulo18);
}
// col, lin Consultado
Label label0 = new Label(0, i, dispositivoCL, arial10fontResult);
sheet.addCell(label0);
Label label1 = new Label(1, i, simCardCL, arial10fontResult);
sheet.addCell(label1);
Label label2 = new Label(2, i, linhaCL, arial10fontResult);
sheet.addCell(label2);
Label label3 = new Label(3, i, erro, arial10fontResult);
sheet.addCell(label3);
// col, lin
Label label4 = new Label(4, i, dispositivo, arial10fontResult);
sheet.addCell(label4);
Label label5 = new Label(5, i, simCard, arial10fontResult);
sheet.addCell(label5);
Label label6 = new Label(6, i, linha, arial10fontResult);
sheet.addCell(label6);
Label label7 = new Label(7, i, codTecnologia, arial10fontResult);
sheet.addCell(label7);
Label label8 = new Label(8, i, apnConfigurada, arial10fontResult);
sheet.addCell(label8);
Label label9 = new Label(9, i, operadora, arial10fontResult);
sheet.addCell(label9);
Label label10 = new Label(10, i, apnProvisionada, arial10fontResult);
sheet.addCell(label10);
Label label11 = new Label(11, i, statusSIMCard, arial10fontResult);
sheet.addCell(label11);
Label label12 = new Label(12, i, fonte, arial10fontResult);
sheet.addCell(label12);
Label label13 = new Label(13, i, imei, arial10fontResult);
sheet.addCell(label13);
Label label14 = new Label(14, i, imsi, arial10fontResult);
sheet.addCell(label14);
Label label15 = new Label(15, i, statusLinha, arial10fontResult);
sheet.addCell(label15);
Label label16 = new Label(16, i, consDados, arial10fontResult);
sheet.addCell(label16);
Label label17 = new Label(17, i, matricula, arial10fontResult);
sheet.addCell(label17);
Label label18 = new Label(18, i, chamado, arial10fontResult);
sheet.addCell(label18);
// Escrevedo o arquivo em disco
wwb.write();
// Fechando a IO
wwb.close();
}
}
A linha que indica no stacktrace é a que está o:
Workbook rw = Workbook.getWorkbook(new File(filename2.toString()));
WritableWorkbook wwb = Workbook.createWorkbook(
new File(filename2.toString()), rw);
Eu não tenho ideia de como fazer para reparar isso…