1

使用 Apache POI 生成 Excel 工作表时出现以下错误。

代码在 Eclipse 中执行,但在转换为 GraalVM 原生映像时会出现以下错误。

Exception in thread "main" java.lang.ClassCastException: org.apache.xmlbeans.impl.values.XmlComplexContentImpl cannot be cast to org.openxmlformats.schemas.spreadsheetml.x2006.main.CTWorkbook
        at org.openxmlformats.schemas.spreadsheetml.x2006.main.CTWorkbook$Factory.newInstance(Unknown Source)
        at org.apache.poi.xssf.usermodel.XSSFWorkbook.onWorkbookCreate(XSSFWorkbook.java:460)
        at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:263)
        at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:257)
        at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:245)
        at POITest.test.ApachePOIExcelWrite.main(ApachePOIExcelWrite.java:21)
4

1 回答 1

1

你必须:

  1. 运行检查构建
  2. 调用产生此异常的方法以生成正确的 reflect-config.json
  3. 选择与 Apache POI 相关的类并将它们复制到您的 reflect-config.json
  4. 放置在 application.properties 中:

    quarkus.native.additional-build-args =-H:ReflectionConfigurationFiles= 将路由放置到 reflect-config.json

例如,这是我添加到我的 reflect-config.json 中的类,以改进本机构建中的这个异常:

 {
    "name": "org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.CTWorkbookImpl",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": [
          "org.apache.xmlbeans.SchemaType"
        ]
      }
    ]
  },
  {
    "name": "org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.CTWorkbookPrImpl",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": [
          "org.apache.xmlbeans.SchemaType"
        ]
      }
    ]
  },
  {
    "name": "org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.CTWorksheetImpl",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": [
          "org.apache.xmlbeans.SchemaType"
        ]
      }
    ]
  },
  {
    "name": "org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.CTXfImpl",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": [
          "org.apache.xmlbeans.SchemaType"
        ]
      }
    ]
  },
  {
    "name": "org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.STBorderIdImpl",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": [
          "org.apache.xmlbeans.SchemaType"
        ]
      }
    ]
  },
  {
    "name": "org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.STCellRefImpl",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": [
          "org.apache.xmlbeans.SchemaType"
        ]
      }
    ]
  },
  {
    "name": "org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.STCellStyleXfIdImpl",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": [
          "org.apache.xmlbeans.SchemaType"
        ]
      }
    ]
  },
  {
    "name": "org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.STCellTypeImpl",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": [
          "org.apache.xmlbeans.SchemaType"
        ]
      }
    ]
  },
  {
    "name": "org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.STFillIdImpl",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": [
          "org.apache.xmlbeans.SchemaType"
        ]
      }
    ]
  },
  {
    "name": "org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.STFontIdImpl",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": [
          "org.apache.xmlbeans.SchemaType"
        ]
      }
    ]
  },
  {
    "name": "org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.STFontSchemeImpl",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": [
          "org.apache.xmlbeans.SchemaType"
        ]
      }
    ]
  },
  {
    "name": "org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.STNumFmtIdImpl",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": [
          "org.apache.xmlbeans.SchemaType"
        ]
      }
    ]
  },
  {
    "name": "org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.STPatternTypeImpl",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": [
          "org.apache.xmlbeans.SchemaType"
        ]
      }
    ]
  },
  {
    "name": "org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.STRefImpl",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": [
          "org.apache.xmlbeans.SchemaType"
        ]
      }
    ]
  },
  {
    "name": "org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.STXstringImpl",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": [
          "org.apache.xmlbeans.SchemaType"
        ]
      }
    ]
  },
  {
    "name": "org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.SstDocumentImpl",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": [
          "org.apache.xmlbeans.SchemaType"
        ]
      }
    ]
  },
  {
    "name": "org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.StyleSheetDocumentImpl",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": [
          "org.apache.xmlbeans.SchemaType"
        ]
      }
    ]
  },
  {
    "name": "org.openxmlformats.schemas.officeDocument.x2006.customProperties.impl.CTPropertiesImpl",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": [
          "org.apache.xmlbeans.SchemaType"
        ]
      }
    ]
  },
  {
    "name": "org.openxmlformats.schemas.officeDocument.x2006.customProperties.impl.PropertiesDocumentImpl",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": [
          "org.apache.xmlbeans.SchemaType"
        ]
      }
    ]
  },
  {
    "name": "org.openxmlformats.schemas.officeDocument.x2006.extendedProperties.impl.CTPropertiesImpl",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": [
          "org.apache.xmlbeans.SchemaType"
        ]
      }
    ]
  },
  {
    "name": "org.openxmlformats.schemas.officeDocument.x2006.extendedProperties.impl.PropertiesDocumentImpl",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": [
          "org.apache.xmlbeans.SchemaType"
        ]
      }
    ]
  },
  {
    "name": "org.openxmlformats.schemas.officeDocument.x2006.relationships.impl.STRelationshipIdImpl",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": [
          "org.apache.xmlbeans.SchemaType"
        ]
      }
    ]
  },
  {
    "name": "org.openxmlformats.schemas.spreadsheetml.x2006.main.STCellType$Enum",
    "fields": [
      {
        "name": "table"
      }
    ]
  },
  {
    "name": "org.openxmlformats.schemas.spreadsheetml.x2006.main.STFontScheme$Enum"
  },
  {
    "name": "org.openxmlformats.schemas.spreadsheetml.x2006.main.STPatternType$Enum"
  },
  {
    "name": "org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.CTBookViewImpl",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": [
          "org.apache.xmlbeans.SchemaType"
        ]
      }
    ]
  },
  {
    "name": "org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.CTBookViewsImpl",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": [
          "org.apache.xmlbeans.SchemaType"
        ]
      }
    ]
  },
  {
    "name": "org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.CTBooleanPropertyImpl",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": [
          "org.apache.xmlbeans.SchemaType"
        ]
      }
    ]
  },
  {
    "name": "org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.CTBorderImpl",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": [
          "org.apache.xmlbeans.SchemaType"
        ]
      }
    ]
  },
  {
    "name": "org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.CTBorderPrImpl",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": [
          "org.apache.xmlbeans.SchemaType"
        ]
      }
    ]
  },
  {
    "name": "org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.CTBordersImpl",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": [
          "org.apache.xmlbeans.SchemaType"
        ]
      }
    ]
  },
  {
    "name": "org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.CTCellImpl",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": [
          "org.apache.xmlbeans.SchemaType"
        ]
      }
    ]
  },
  {
    "name": "org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.CTCellStyleXfsImpl",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": [
          "org.apache.xmlbeans.SchemaType"
        ]
      }
    ]
  },
  {
    "name": "org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.CTCellXfsImpl",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": [
          "org.apache.xmlbeans.SchemaType"
        ]
      }
    ]
  },
  {
    "name": "org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.CTColImpl",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": [
          "org.apache.xmlbeans.SchemaType"
        ]
      }
    ]
  },
  {
    "name": "org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.CTColorImpl",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": [
          "org.apache.xmlbeans.SchemaType"
        ]
      }
    ]
  },
  {
    "name": "org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.CTColsImpl",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": [
          "org.apache.xmlbeans.SchemaType"
        ]
      }
    ]
  },
  {
    "name": "org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.CTFillImpl",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": [
          "org.apache.xmlbeans.SchemaType"
        ]
      }
    ]
  },
  {
    "name": "org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.CTFillsImpl",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": [
          "org.apache.xmlbeans.SchemaType"
        ]
      }
    ]
  },
  {
    "name": "org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.CTFontImpl",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": [
          "org.apache.xmlbeans.SchemaType"
        ]
      }
    ]
  },
  {
    "name": "org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.CTFontNameImpl",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": [
          "org.apache.xmlbeans.SchemaType"
        ]
      }
    ]
  },
  {
    "name": "org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.CTFontSchemeImpl",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": [
          "org.apache.xmlbeans.SchemaType"
        ]
      }
    ]
  },
  {
    "name": "org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.CTFontSizeImpl",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": [
          "org.apache.xmlbeans.SchemaType"
        ]
      }
    ]
  },
  {
    "name": "org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.CTFontsImpl",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": [
          "org.apache.xmlbeans.SchemaType"
        ]
      }
    ]
  },
  {
    "name": "org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.CTIntPropertyImpl",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": [
          "org.apache.xmlbeans.SchemaType"
        ]
      }
    ]
  },
  {
    "name": "org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.CTNumFmtImpl",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": [
          "org.apache.xmlbeans.SchemaType"
        ]
      }
    ]
  },
  {
    "name": "org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.CTNumFmtsImpl",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": [
          "org.apache.xmlbeans.SchemaType"
        ]
      }
    ]
  },
  {
    "name": "org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.CTPageMarginsImpl",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": [
          "org.apache.xmlbeans.SchemaType"
        ]
      }
    ]
  },
  {
    "name": "org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.CTPatternFillImpl",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": [
          "org.apache.xmlbeans.SchemaType"
        ]
      }
    ]
  },
  {
    "name": "org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.CTRowImpl",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": [
          "org.apache.xmlbeans.SchemaType"
        ]
      }
    ]
  },
  {
    "name": "org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.CTRstImpl",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": [
          "org.apache.xmlbeans.SchemaType"
        ]
      }
    ]
  },
  {
    "name": "org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.CTSheetDataImpl",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": [
          "org.apache.xmlbeans.SchemaType"
        ]
      }
    ]
  },
  {
    "name": "org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.CTSheetDimensionImpl",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": [
          "org.apache.xmlbeans.SchemaType"
        ]
      }
    ]
  },
  {
    "name": "org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.CTSheetFormatPrImpl",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": [
          "org.apache.xmlbeans.SchemaType"
        ]
      }
    ]
  },
  {
    "name": "org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.CTSheetImpl",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": [
          "org.apache.xmlbeans.SchemaType"
        ]
      }
    ]
  },
  {
    "name": "org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.CTSheetViewImpl",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": [
          "org.apache.xmlbeans.SchemaType"
        ]
      }
    ]
  },
  {
    "name": "org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.CTSheetViewsImpl",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": [
          "org.apache.xmlbeans.SchemaType"
        ]
      }
    ]
  },
  {
    "name": "org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.CTSheetsImpl",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": [
          "org.apache.xmlbeans.SchemaType"
        ]
      }
    ]
  },
  {
    "name": "org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.CTSstImpl",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": [
          "org.apache.xmlbeans.SchemaType"
        ]
      }
    ]
  },
  {
    "name": "org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.CTStylesheetImpl",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": [
          "org.apache.xmlbeans.SchemaType"
        ]
      }
    ]
  }
于 2020-04-10T13:52:53.613 回答