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

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

在我的本地开发环境(一台i5,Windows 7机器)上运行时,进程运行得很好,结果如预期。 但是当我尝试在我们的SIT(这是一个旧的Windows Server 2003 SP2 x64)上运行它时,我得到以下exception:

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来pipe理我们的依赖关系。

您至less缺lessApache POI组件依赖关系 。 具体来说,你错过了Apache XMLBeans,尽pipe你也可能错过了其他的东西

Apache POI组件页面列出了所有POI模块,它们包含哪些组件,它们的依赖关系以及可以从中获取的Maven artificat。 您要么丢失了您需要的某个Maven构件,要么没有正确部署这些Jar

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

清楚地表明,在项目CLASSPATH没有一些类或者它的依赖项和bean: xmlbeans-xxxjar 。 确保这是现在和可读。