【问题标题】:XML-BEANS compiled schema: Could not locate compiled schema resource org/apache/poi/schemas/ooxml/system/ooxml/ctstring4cdatype.xsbXML-BEANS 编译模式:找不到编译模式资源 org/apache/poi/schemas/ooxml/system/ooxml/ctstring4cdatype.xsb
【发布时间】:2022-01-27 16:12:30
【问题描述】:

SpringBoot,试图生成一个包含枢轴的 xlsx 文件,但每次它都会因这个堆栈跟踪而崩溃。

使用 xmlbeans 5.0.3

XML-BEANS compiled schema: Could not locate compiled schema resource org/apache/poi/schemas/ooxml/system/ooxml/ctstring4cdatype.xsb (org.apache.poi.schemas.ooxml.system.ooxml.ctstring4cdatype)

代码行是e.addNewS();

XSSFPivotCacheDefinition a = pivotTable.getPivotCacheDefinition();
   CTPivotCacheDefinition b = a.getCTPivotCacheDefinition();
   CTCacheFields c = b.getCacheFields();
   CTCacheField d = c.getCacheFieldArray(index);
   CTSharedItems e = d.getSharedItems();
   CTString f = e.addNewS();
   f.setV(value);

我使用字符从 a 到 f 进行划分,因为我不知道是哪一行。

我注意到它正在尝试连接到这个 url http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument

我不知道该怎么办,我要疯了......

【问题讨论】:

  • “您是否尝试过将其关闭再打开?” POI / XmlBeans 的短语是:“您是否确认您正在使用正确的依赖项运行并且在类路径中没有重复项?” ...通常人们将旧的模式 jar 保存在依赖项中

标签: java spring spring-boot xlsx xmlbeans


【解决方案1】:

在@kiwiwings 的提示下,我设法通过检查所有依赖项来完成这项工作。通过使用解决了这个问题:(2022 年 1 月 28 日)

<dependencies>
   <dependency>
      <groupId>org.apache.xmlbeans</groupId>
      <artifactId>xmlbeans</artifactId>
      <version>5.0.3</version>
   </dependency>
   <dependency>
      <groupId>org.apache.poi</groupId>
      <artifactId>poi</artifactId>
      <version>5.2.0</version>
   </dependency>
   <dependency>
      <groupId>org.apache.poi</groupId>
      <artifactId>poi-ooxml-full</artifactId>
      <version>5.2.0</version>
   </dependency>
   <dependency>
      <groupId>org.apache.poi</groupId>
      <artifactId>poi-ooxml</artifactId>
      <version>5.2.0</version>
   </dependency>
   <dependency>
      <groupId>org.apache.poi</groupId>
      <artifactId>ooxml-schemas</artifactId>
      <version>1.4</version>
   </dependency>
   <dependency>
      <groupId>org.apache.poi</groupId>
      <artifactId>poi-ooxml-schemas</artifactId>
      <version>4.1.2</version>
   </dependency>
</dependencies>

【讨论】:

  • 请删除 ooxml-schemas:1.4 和 poi-ooxml-schemas:4.1.2 (叹气)......你也可以删除 poi-ooxml-full,因为 poi-ooxml-lite 进来了通过传递依赖并将两者都包含在类路径中也很糟糕。如果你需要ooxml-full,那么你需要排除ooxml-lite
  • 再想一想,请尝试只使用 poi-ooxml:5.2.0 其他一切都应该通过传递依赖进入
  • 其实 poi-ooxml-full 解决了问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-12
相关资源
最近更新 更多