2

在我的 J2EE Web 项目中,我有一个简单的 JSP (HomeScreen.jsp) 和一个 servlet 类 (HomeScreenServlet.java)。此类从另一个类 (PDFAwt) 调用非静态方法 (PDFAwt1),而后者又从许多不同的类调用许多其他方法,这通常会发生。

当我尝试创建 PDFAwt 的对象来调用 PDFAwt1()时,出现异常:

java.lang.ClassNotFoundException: jxl.read.biff.BiffException
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1360)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1206)
...

这是 PDFAwt1() 的小预览

CreateExcelFile cef = new CreateExcelFile();

ImageConversion.setupPDFToPNG(ReferencePath);
ImageConversion.setupPDFToPNG(NewPath);

File folder = new File(ReferencePath + "/png");
File[] f = folder.listFiles();
File folder1 = new File(NewPath + "/png");
File[] f1 = folder1.listFiles();
...

创建Excel文件()

import jxl.Workbook;
import jxl.format.Colour;
...
public class CreateExcelFile {
  public CreateExcelFile() {
    try {
      if (!new File("LabelsTemplate.xls").exists()) {
        WritableWorkbook workbook = Workbook.createWorkbook(new File("LabelsTemplate.xls"));
        WritableSheet sheet = workbook.createSheet("Sheet1", 0);
        ... 
    }
  }
}

无法找到问题的确切位置..请帮助..

4

3 回答 3

2

类路径中缺少 jar,如果您正在使用 any IDE,请在运行应用程序之前下载相应的 jar 并将其设置在构建路径中。如果您不使用任何 IDE,请将相应的 jar 添加libweb application.

于 2013-10-10T05:42:54.513 回答
0

Your code is transitively dependent on some jars and you are missing those on your classpath. Maven is a good tool to avoid such transitive dependencies. If you are not using maven then you need to find the jars that you are using, required what all other jars. As a first step, try to find the jar which contains the follwing class:

jxl.read.biff.BiffException
于 2013-10-10T05:38:58.583 回答
0
public class BiffException extends JXLException  

读取 biff 文件时抛出异常

此异常有许多消息应提供有关原因的一些信息:

excelFileNotFound        
excelFileTooBig         
expectedGlobals         
passwordProtected         
streamNotFound         
unrecognizedBiffVersion
unrecognizedOLEFile  

打印消息以查看确切的问题。

你可以在这里找到丢失的罐子

顾名思义,ClassNotFoundExceptionJava 是Java 虚拟机尝试加载特定类但在类路径中找不到请求的类时的子类。java.lang.Exception

关于此异常的另一个重要点是,它是一个检查异常,您需要在使用可能ClassNotFoundException通过使用 try-catch 块或使用 throws 子句在 java 中抛出的方法时提供显式异常处理。

甲骨文文档

public class ClassNotFoundException
 extends ReflectiveOperationException

当应用程序尝试通过其字符串名称加载类时抛出:

  • Class 类中的 forName 方法。
  • ClassLoader 类中的 findSystemClass 方法。
  • ClassLoader 类中的 loadClass 方法。

但找不到具有指定名称的类的定义。

于 2013-10-10T05:49:07.727 回答