在SIT上运行时出现Apache POI错误

时间:2014-04-24 13:37:47

标签: 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&amp; Spring来管理我们的依赖关系。

2 个答案:

答案 0 :(得分:2)

你至少缺少Apache POI component dependencies。具体来说,你缺少Apache XMLBeans,尽管你可能也错过了其他的东西

Apache POI components page列出了所有POI模块,它们包含哪些组件,它们的依赖关系以及它们可以从中获取的Maven artificat形式。你要么缺少一个你需要的maven工件,要么没有正确部署jar

答案 1 :(得分:1)

  

java.lang.NoClassDefFoundError:org / apache / xmlbeans / XmlOptions

明确指出您的项目CLASSPATH中没有某些类或其中一个依赖项和bean,如:xmlbeans-x.x.x.jar。确保它存在且可读。