Olá à todos, tudo bem?
Estou preso num projeto e preciso urgentemente de ajuda. Estou tentando ler e apresentar dados de um arquivo xls (Excel) dentro de uma página HTML que utiliza a tecnologia Servlet.
Primeiro tentei usar a lib jxl e depois a Apache POI (achando que poderia ser algum problema na anterior).
Entretanto não consigo fazer nenhuma das bibliotecas rodar dentro do Servlet.
Segue o erro:
exception
javax.servlet.ServletException: Servlet execution threw an exception
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
root cause
java.lang.NoClassDefFoundError: org/apache/poi/hssf/usermodel/HSSFWorkbook
psb_classes.Relatorio.processRequest(Relatorio.java:56)
psb_classes.Relatorio.doGet(Relatorio.java:102)
javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
Espero que possam me salvar.
Segue exemplo do meu código:
import java.io.IOException;
import java.io.PrintWriter;
import java.io.File;
import java.io.FileInputStream;
import java.util.Iterator;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet(name = "Relatorio", urlPatterns = {"/Relatorio"})
public class Relatorio extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try{
FileInputStream arquivo = new FileInputStream(new File("arquivo.xlsx"));
HSSFWorkbook workbook = new HSSFWorkbook(arquivo);
HSSFSheet sheet = workbook.getSheetAt(0);
Iterator<Row> rowIterator = sheet.iterator();
quantidade = 0;
int i = 0;
while(rowIterator.hasNext()){
Row row = rowIterator.next();
Iterator<Cell> cellIterator = row.cellIterator();
while(cellIterator.hasNext()){
Cell cell = cellIterator.next();
if(cell.getColumnIndex() == 0){
nmLocalidade[i] = cell.getStringCellValue();
i++;
quantidade++;
}
}
}
workbook.close();
}
catch(Exception e){
out.println("Problema com a base de dados: " + e.getMessage());
out.println("<br>");
out.println("Tente novamente ou entre em contato com o responsável<br><br>");
}
Os .jar do POI então na pasta lib de seu webapp?
1 curtida
Era exatamente isso, obrigado pela solução!
Desculpe o incomodo cm problema simples!