首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java Apache POI错误:找不到XMLEventFactory提供程序com.ctc.wstx.stax.WstxEventFactory

Java Apache POI错误:找不到XMLEventFactory提供程序com.ctc.wstx.stax.WstxEventFactory
EN

Stack Overflow用户
提问于 2018-01-23 22:20:45
回答 2查看 847关注 0票数 2

我得到了运行时错误:

代码语言:javascript
复制
javax.xml.stream.XMLEventFactory: Provider com.ctc.wstx.stax.WstxEventFactory not found

使用Apache POI并尝试创建一个XSSFWorkbook

我可以创建一个没有任何问题的HSSFWorkbook,但是当我将代码更改为:

代码语言:javascript
复制
Workbook workbook = new XSSFWorkbook();

它会导致运行时错误。你知道会出什么问题吗?下面是我为Apache POI添加的Maven依赖项:

代码语言:javascript
复制
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>3.15</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>ooxml-schemas</artifactId>
    <version>1.3</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>3.15</version>
</dependency>
EN

回答 2

Stack Overflow用户

发布于 2018-01-25 07:09:01

谢谢,@Francis @yoav!在您的提示下,我能够通过将我的pom.xml依赖项重新定义为以下内容来修复错误:

代码语言:javascript
复制
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>3.15</version>
</dependency>
<dependency>
    <groupId>com.ctc.wstx</groupId>
    <artifactId>woodstox-osgi</artifactId>
    <version>3.2.1.1</version>
</dependency>

再次感谢!

票数 1
EN

Stack Overflow用户

发布于 2018-12-18 05:28:53

对我来说,修复它的方法是有以下依赖:

代码语言:javascript
复制
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>3.17</version>
    <scope>provided</scope>
</dependency>

<!-- BE AWARE! It is absolutely crucial for wstx-asl to be bundled with plugin although it is present in Jira as well. -->
<!-- Jira version is not exported and it is a known bug: https://jira.atlassian.com/browse/JRASERVER-26214 -->
<!-- This artifact is supplemental for Apache POI library. -->
<dependency>
    <groupId>org.codehaus.woodstox</groupId>
    <artifactId>wstx-asl</artifactId>
    <version>3.2.4</version>
</dependency>

并在不同的上下文中运行XSSFWorkbook的创建: XSSFWorkbook

代码语言:javascript
复制
 xssfWorkbook;
try {
    xssfWorkbook = ContextClassLoaderSwitchingUtil.runInContext(WstxEventFactory.class.getClassLoader(), (Callable<XSSFWorkbook>) XSSFWorkbook::new);
} catch (Exception e) {
    throw new IllegalStateException("Cannot create XLSX workbook with WstxEventFactory class loader.");
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48403963

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档