Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.lang.NoClassDefFoundError:将在java servlet中出现_Java_Jsp_Servlets - Fatal编程技术网

java.lang.NoClassDefFoundError:将在java servlet中出现

java.lang.NoClassDefFoundError:将在java servlet中出现,java,jsp,servlets,Java,Jsp,Servlets,这是我的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.ht

这是我的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;
}

}

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

看起来你忘了在
类路径
中包含POI库(例如,你的web应用程序没有引用它)。您可以将此库包含在
WEB-INF/lib
下(在您的WAR存档或分解目录格式中),也可以将其放在应用程序
server/WEB
server
CLASSPATH
中。看起来您忘记了将POI库包含在
CLASSPATH
(例如,您的web应用程序未引用该库)。您可以将该库包含在
web-INF/lib
(在您的WAR存档或分解目录格式中)下,也可以将其放在应用程序的其他位置
server/web
server
CLASSPATH
您在这一行中遇到了异常

POIFSFileSystem myFileSystem = new POIFSFileSystem(myInput);
您正在尝试使用项目中未包含的库。
确保
web inf/lib
目录中的
import org.apache.poi

这一行中出现异常

POIFSFileSystem myFileSystem = new POIFSFileSystem(myInput);
您正在尝试使用项目中未包含的库。
确保
导入org.apache.poi
库位于
web inf/lib
目录中,poi JAR不在类路径中。您可以将此库包含在web-inf/lib下。


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

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


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

确保WEB-INF/lib下的
apache poi.jar

可选:根据您的web服务器或应用程序服务器,将
apache poi.jar
放入
server home
/lib(取决于服务器)。这不是最佳解决方案


注意


现在,您正在开发web应用程序,不要使用带有特定路径的上载文件(例如:C:\..)。如果是这样,程序将发现本地计算机
web服务器上的上载文件正在运行。首先,您必须以
字节[]的形式上载文件
InputStream
或使用其他第三方库。之后,您必须更改
HSSFWorkbook

确保在WEB-INF/lib下
apache poi.jar

可选:根据您的web服务器或应用程序服务器,将
apache poi.jar
放入
server home
/lib(取决于服务器)。这不是最佳解决方案


注意


现在,您正在开发web应用程序,不要使用带有特定路径的上载文件(例如:C:\..)。如果是这样,程序将发现本地计算机
web服务器上的上载文件正在运行。首先,您必须以
字节[]的形式上载文件
InputStream
或使用其他第三方库。之后,您必须更改
HSSFWorkbook

执行时所有Apache POI库都在哪里?看起来您的项目中缺少了一些Apache POI库,或者至少在部署web应用时缺少了这些库。@Jon Skeet@Luggi Mendoza我已经添加了在java参考库中检查部署在应用程序中的Apache POI库包含
org.Apache.POI.poifs.filesystem.poifsffilesystem
类。@Rag:类路径中有库,但需要将其放入项目的
WEB-INF/lib
执行时所有Apache POI库都在哪里?看起来像你r在您的项目中缺少一些Apache POI库,或者至少在您部署web应用程序时缺少这些库。@Jon Skeet@Luggi Mendoza我在java参考库中添加了它。请确认,在您的应用程序中部署的Apache POI库包含
org.Apache.POI.poifs.filesystem.poifsffilesystem
类。@Rag:类中有库但您需要将其放入项目的
WEB-INF/lib