【发布时间】:2013-06-19 06:48:03
【问题描述】:
我有一个 java 类来处理 XLS 文件并使用 apache poi jar (poi-ooxml-3.8-20120326.jar) 来执行此操作。我最近还部署了 BIRT jar 来生成一些报告。从这里开始,当我调用我的 java 类进行 XLS 处理时,出现以下错误。
java.lang.NoSuchMethodError: org.apache.poi.ss.usermodel.WorkbookFactory.create(Ljava/io/File;)Lorg/apache/poi/ss/usermodel/Workbook;
我发现 'WorkbookFactory' 类在 BIRT 相关的 jars (org.eclipse.birt.runtime_4.2.1.v20120918-1113.jar) 中也可用,并且指定的方法在这个 jar 中不可用。这可能会导致上述异常。
如何通过在服务器中部署 jars(POI 和 BIRT)来解决此问题。
【问题讨论】:
-
您使用的是哪个版本的 BIRT 和 POI?
-
如果您重新安排您的类路径以首先在 POI jar 中查找类(只需在类路径声明中提及 BIRT jar 之前提及它),此问题可能会得到解决。当然,我假设它不会在预期 BIRT 类时使用 POI 类引入进一步的冲突。
-
你能不能得到一个更新版本的 BIRT,它使用你想要使用的相同版本的 POI?
-
试图从 BIRT 中删除 poi 包?
-
@SayemAhmed;正在从 BIRT jar 中删除 POI 相关类,而不是更改类路径详细信息或使用 Java URI 类从特定 jar 加载类文件。似乎 BIRT 4.3 将与 POI 3.9 一起提供完整的解决方案。但是我等不及了。因此从 BIRT jar 本身中删除 POI 文件。
标签: java apache-poi birt