1
votes

Getting following error while generating excel sheet using Apache POI.

Code getting executed in eclipse,but when converted to GraalVM native image gives following error.

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)
1
Sounds like a bug in your build process. How are you compiling/building/packaging your program?Gagravarr
i'm converting jar to native image using graalvm, while generating an excel sheet i'm getting above error.Mohit Ochani
Sounds like a graalvm bug then, if it works on a regular JVM....Gagravarr
How are you doing your GraalVM build? What ReflectionConfigurationFiles values are you passing?Gagravarr
Following is the reflection config file :linkMohit Ochani

1 Answers

1
votes

You have to:

  1. Run inspection build
  2. Call method which produce this exception to generate correct reflect-config.json
  3. Select classes which relate to Apache POI and copy them to your reflect-config.json
  4. Place in application.properties:

    quarkus.native.additional-build-args =-H:ReflectionConfigurationFiles= place here route to reflect-config.json

for example this is my classes which I added to my reflect-config.json to improove this exception in native build:

 {
    "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"
        ]
      }
    ]
  }