java - 在 SIT 上运行时 Apache POI 错误

标签 java excel spring maven apache-poi

我一直在 Java 1.5 上开发 SpringSource 3.2 项目。这个项目的目的是在解析excel中的数据后,获取一个excel文件并输出到我们自己格式的另一个文件中。

当在我的本地开发环境(i5、Windows 7 计算机)上运行时,该过程运行完全正常,结果符合预期。但是当我尝试在我们的 SIT(旧的 Windows Server 2003 SP2 x64)上运行它时,出现以下异常:

2014-04-24 14:18:16:574 ERROR [main] - AbstractStep | Encountered an error executing the step java.lang.NoClassDefFoundError: org/apache/xmlbeans/XmlOptions at org.apache.poi.POIXMLDocumentPart.<clinit>(POIXMLDocumentPart.java:43) at org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:62) at com.hsbc.gbm.dml.batch.item.file.ExcelFileItemReader.doOpen(ExcelFileItemReader.java:118) at org.springframework.batch.item.support.AbstractItemCountingItemStreamItemReader.open(AbstractItemCountingItemStreamItemReader.java:134) at org.springframework.batch.item.file.MultiResourceItemReader.read(MultiResourceItemReader.java:105) at org.springframework.batch.core.step.item.SimpleChunkProvider.doRead(SimpleChunkProvider.java:90) at org.springframework.batch.core.step.item.SimpleChunkProvider.read(SimpleChunkProvider.java:148) at org.springframework.batch.core.step.item.SimpleChunkProvider$1.doInIteration(SimpleChunkProvider.java:108) at org.springframework.batch.repeat.support.RepeatTemplate.getNextResult(RepeatTemplate.java:367) at org.springframework.batch.repeat.support.RepeatTemplate.executeInternal(RepeatTemplate.java:214) . . .

有人知道为什么会发生这种情况吗?顺便说一句,我们使用 Maven 和 Spring 来管理我们的依赖项。

最佳答案

您至少缺少 Apache POI component dependencies 中的一个。具体来说,您缺少 Apache XMLBeans,尽管您也可能缺少其他东西

Apache POI components page列出所有 POI 模块、它们包含哪些组件、它们的依赖项是什么以及可以从哪些 Maven Artifact 中获取它们。您要么缺少所需的 Maven Artifact 之一,要么没有正确部署 jar

关于java - 在 SIT 上运行时 Apache POI 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23270606/

相关文章:

c# - 防止 Excel 退出

java - 自定义异常未使用@ExceptionHandler 注释方法处理

java - 为什么在使用 Spring HATEOAS Jackson 序列化程序时会收到警告

java - 通过 JNI 从 C++ 应用程序创建 JVM 后找不到类

java - AtomicLong 的 incrementAndGet 方法在内部如何工作?

java - 我无法从网站获取所有字节

java - 在java中将json字符串切割成两个不同的json字符串

html - Notepad++ 的正则表达式

excel - 在概览页面中显示最后更新的行 - Excel

java - 更改 Java 的 HTML 输出