在适用于 Linux 的 Oracle Agile 9.3.0.2 中运行时 Apache POI 中的 java.lang.IncompatibleClassChangeError

Posted

技术标签:

【中文标题】在适用于 Linux 的 Oracle Agile 9.3.0.2 中运行时 Apache POI 中的 java.lang.IncompatibleClassChangeError【英文标题】:java.lang.IncompatibleClassChangeError in Apache POI while running in Oracle Agile 9.3.0.2 for Linux 【发布时间】:2011-05-19 06:58:46 【问题描述】:

我正在 Oracle Agile 9.3.0.2 中构建 Java Px。

My Px 涉及与两种格式(HSSF 和 XSSF)的 Excel 文件的交互。

我正在使用 Apache POI 库进行 excel 文件处理。

但我得到 "java.lang.IncompatibleClassChangeError" 为这一行:

工作簿工作簿 = WorkbookFactory.create(ip);

其中ip是excel文件的输入流。

当我尝试访问任何 HSSF 电子表格文件时。 (.xls)

Px 适用于 XSSF 电子表格文件。 (.xlsx)

请帮忙!!!!

【问题讨论】:

你看过这个question吗? 【参考方案1】:

很有可能您的类路径中有两个不同的 Apache POI 副本。您需要确保所有 POI jar(普通、暂存器、ooxml 等)都来自同一版本。请参阅POI FAQ,了解如何检查生产中实际使用的 jar 文件。

【讨论】:

我已经检查了所有可能性,但没有结果。 您尝试了常见问题解答建议的代码吗?你会惊讶于有多少人解决了这个问题——他们没有意识到的罐子通常是罪魁祸首..【参考方案2】:

您能否检查应用程序服务器本身是否捆绑了任何poi-*.jar 文件?如果有的话,它可能会导致类似的问题。也许在压缩文件中使用 TotalCommander 搜索 Workbook.classWorkbookFactory.class 以确保在任何其他 jar 中找不到这些类..

【讨论】:

以上是关于在适用于 Linux 的 Oracle Agile 9.3.0.2 中运行时 Apache POI 中的 java.lang.IncompatibleClassChangeError的主要内容,如果未能解决你的问题,请参考以下文章

Teamcenter PLM与ORACLE Agile PLM有啥区别?

F5给oracle agile做SSL OFFLOAFD

oracle

适用于 Oracle 的 HikariConfig 池

在 Oracle Linux 上使用 DTrace

适用于 mac 的 Oracle gui 界面 [关闭]