当前位置: 首页 > 知识库问答 >
问题:

Java语言lang.NoClassDefFoundError:将在java servlet中出现

鲜于海
2023-03-14

这是我的servlet类

package com.zaggle;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class FirstServlet
 */
public class FirstServlet extends HttpServlet {
private static final long serialVersionUID = 1L;

/**
 * @see HttpServlet#HttpServlet()
 */
public FirstServlet() {
    super();
    // TODO Auto-generated constructor stub
}

/**
 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
 */
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
}

/**
 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
 */
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    String[] data;String val=null,name;
    name=request.getParameter("excelsheet");
    System.out.println(name);
        response.setContentType("text/html");
         UploadExcel ex= new UploadExcel();
         data=ex.procedure(name);
     System.out.println(name);

    request.setAttribute("val", data);
    System.out.println(val);

    String destination="/NewFile1.jsp";
    RequestDispatcher rd=getServletContext().getRequestDispatcher(destination);
    //doGet(request, response);
    rd.forward(request, response);


}

}  

这是我在servlet类中使用的普通java类

package com.zaggle;

import java.io.FileInputStream;
import java.io.IOException;
import java.util.Iterator;
import java.util.Scanner;
import java.util.Vector;
import javax.swing.plaf.basic.BasicInternalFrameTitlePane.RestoreAction;
import org.apache.poi.hssf.record.formula.functions.Goto;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;



 public class UploadExcel {
public String[] procedure(String filename) {
    //  Scanner scanner = new Scanner(System.in);
      //System.out.println("Please enter a filename with extention to upload");

    String fileName = "C:\\"+filename;//+scanner.nextLine();
    String[] dataHolder = ReadCSV(fileName);
   // printCellDataToConsole(dataHolder);
    return dataHolder;
}

public static void printCellDataToConsole(Vector dataHolder) {
    // TODO Auto-generated method stub
    for(int i=0;i<dataHolder.size();i++)
    {
        Vector column=(Vector)dataHolder.elementAt(i);
        for (int j = 0; j < column.size(); j++) {
            HSSFCell myCell = (HSSFCell) column.elementAt(j);
            String stringCellValue = myCell.toString();

            System.out.print(stringCellValue + "\t");
    }
    System.out.println();

    }
}

public static String[] ReadCSV(String fileName) {
    // TODO Auto-generated method stub
     Vector cellVectorHolder = new Vector();
     String[] col = null;
     try {
         FileInputStream myInput = new FileInputStream(fileName);

         POIFSFileSystem myFileSystem = new POIFSFileSystem(myInput);

         HSSFWorkbook myWorkBook = new HSSFWorkbook(myFileSystem);

         HSSFSheet mySheet = myWorkBook.getSheetAt(0);

         Iterator rowIter = mySheet.rowIterator();

         while (rowIter.hasNext()) {
                 HSSFRow myRow = (HSSFRow) rowIter.next();
                 Iterator cellIter = myRow.cellIterator();
                 Vector column = new Vector();
                 while (cellIter.hasNext()) {
                         HSSFCell myCell = (HSSFCell) cellIter.next();
                         column.addElement(myCell);

                 }
                  col=column.toString().split(" ");
                 cellVectorHolder.addElement(column);
         }
 } catch(IOException ie)
 {
     System.err.println("Please enter a valid input");

 }
     catch (Exception e) {
         e.printStackTrace();
 }
 //return cellVectorHolder;
     return col;
}

}

当我运行时,我得到如下错误

类型异常报告

消息

说明服务器遇到内部错误(),无法满足此请求。

例外

javax。servlet。ServletException:Servlet执行引发异常

根本原因

java.lang.NoClassDefFoundError: org/apache/poi/poifs/filesystem/POIFSFileSystem
com.zaggle.UploadExcel.ReadCSV(UploadExcel.java:52)
com.zaggle.UploadExcel.procedure(UploadExcel.java:24)
com.zaggle.FirstServlet.doPost(FirstServlet.java:42)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

为什么我会出现这个错误。有人能帮我吗?

共有3个答案

杜禄
2023-03-14

您的POI jar不在类路径中。您可以在WEB-INF/lib下包含此库。

还可以检查您的JAR版本是否与预期的不同。

吴缪文
2023-03-14

您在此行中遇到异常

POIFSFileSystem myFileSystem = new POIFSFileSystem(myInput);

您正在尝试使用项目中未包含的库。确保导入组织。阿帕奇。poi库位于web inf/lib目录中

充浩波
2023-03-14

看起来您忘记在CLASSPATH中包含POI库(例如,您的Web应用程序未引用它)。您可以将此库包含在WEB-INF/lib下(在您的WAR存档或分解目录格式中),或者它可以位于您的应用程序server/webserverCLASSPATH中的其他位置。

 类似资料:
  • 我的第一个应用程序的结构很简单: 在编译和运行程序的过程中一切都很好。在默认的out\工件目录中构建工件jar文件后,我得到 当我试图运行它java-jar CsvReplacer.jar命令 库包含在jar文件中(解包后就在那里)-它们被添加到项目结构中的库部分(单独-每个库一个文件),整个libs dir包含在模块部分的依赖项选项卡中(选中导出复选框),libs dir类似地添加到工件部分的输

  • 本文向大家介绍在Java语言中将键插入树中,包括了在Java语言中将键插入树中的使用技巧和注意事项,需要的朋友参考一下 在新创建的二叉树中的第一次插入会在根节点创建一个节点。根据左子代小于父代而右子代大于父代的二叉搜索树属性,将插入更多插入。 让我们看看如何在代码中实现该算法- 示例 让我们了解此功能的工作原理。首先,我们检查根是否为空,如果是,则树为空,然后将新节点分配为根,然后完成。如果没有,

  • 我有一个基于maven的scala/java混合应用程序,可以提交spar作业。我的应用程序jar“myapp.jar”在lib文件夹中有一些嵌套的jar。其中之一是“common.jar”。我在清单文件中定义了类路径属性,比如。Spark executor抛出在客户端模式下提交应用程序时出错。类(com/myapp/common/myclass.Class)和jar(common.jar)在那里

  • 我不知道为什么我的代码给我一个空java.util.date. 问题:编写一个测试程序,创建一个帐户ID为1122,余额为20000,年利率为4.5%的帐户对象。使用提款方式提取2500美元,使用存款方式存入3000美元,并打印余额,每月利息,以及创建此帐户的日期 这是我的代码: }

  • 因此,我有一个类加载器加载一个类,如下所示: 类在运行时位于另一个jar中。以及是在主jar中生成的,然后我取消了它的归档,所以依赖项就在那里。 如何从外部访问其他依赖项。我加载的类文件? 例外情况:

  • 从安装时的4j外部脚本运行到安装时的4j方法。 实现:为此,我们在脚本中导入了特定的类,并调用了该方法,还在安装程序的编译器变量中添加了特定的jar文件作为类路径,使脚本编译成功。并成功地创建了安装程序。 问题:在运行时,我得到NoClassDefFoundError。 我得到以下异常:在行动运行脚本(屏幕安装位置),属性脚本:java.lang.NoClassDefFoundError: yes