alibaba / easyexcel

快速、简洁、解决大文件内存溢出的java处理Excel工具

Home Page:https://easyexcel.opensource.alibaba.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

jdk17+javafx+easyexcel 3.3.3版本,module-info已经暴露了相关模块,运行报反射错误

weiwuHuang opened this issue · comments

触发场景描述

jdk17+javafx+easyexcel 3.3.3版本,module-info已经暴露了相关模块,但运行报反射错误

触发Bug的代码

module com.reiki.nrp.reikinrp {
requires javafx.controls;
requires javafx.fxml;
requires easyexcel.core;

opens com.reiki.nrp to javafx.fxml;
exports com.reiki.nrp;
exports com.reiki.nrp.listener;
exports com.reiki.nrp.domain;
opens com.reiki.nrp.listener to javafx.fxml;
opens com.reiki.nrp.domain to javafx.fxml;

}

   static List<Map<String,Employee>> readData(File file,LinkedHashMap<String, Statistic> statisticMap){
        List<Map<String,Employee>> list = new ArrayList<>();
        ExcelReader reader = EasyExcel.read(file).build();
        Map<String,Employee> workingList = new HashMap<>();
        ReadSheet workingSheet = EasyExcel.readSheet(0).head(Employee.class).registerReadListener(new DataListener(workingList)).build();
        Map<String,Employee> departList = new HashMap<>();
        ReadSheet departSheet = EasyExcel.readSheet(1).head(Employee.class).registerReadListener(new DataListener(departList)).build();
        Map<String,Employee> departingList = new HashMap<>();
        ReadSheet departingSheet = EasyExcel.readSheet(2).head(Employee.class).registerReadListener(new DataListener(departingList)).build();
        Map<String,Employee> monthList = new HashMap<>();
        ReadSheet monthSheet = EasyExcel.readSheet(3).head(Employee.class).registerReadListener(new DataListener(monthList)).build();
        ReadSheet statisticSheet = EasyExcel.readSheet(4).head(Statistic.class).registerReadListener(new StatisticListener(statisticMap)).build();
        reader.read(workingSheet,departSheet,departingSheet,monthSheet,statisticSheet);
        reader.finish();
        list.add(workingList);
        list.add(departList);
        list.add(departingList);
        list.add(monthList);
        return list;
    }

提示的异常或者没有达到的效果

Caused by: com.alibaba.excel.support.cglib.core.CodeGenerationException: java.lang.IllegalAccessException-->module com.reiki.nrp.reikinrp does not open com.reiki.nrp.domain to unnamed module @28dbc27c
at com.alibaba.excel.support.cglib.core.ReflectUtils.defineClass(ReflectUtils.java:511)
at com.alibaba.excel.support.cglib.core.AbstractClassGenerator.generate(AbstractClassGenerator.java:363)
at com.alibaba.excel.support.cglib.core.AbstractClassGenerator$ClassLoaderData$3.apply(AbstractClassGenerator.java:110)
at com.alibaba.excel.support.cglib.core.AbstractClassGenerator$ClassLoaderData$3.apply(AbstractClassGenerator.java:108)
at com.alibaba.excel.support.cglib.core.internal.LoadingCache$2.call(LoadingCache.java:54)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at com.alibaba.excel.support.cglib.core.internal.LoadingCache.createEntry(LoadingCache.java:61)
at com.alibaba.excel.support.cglib.core.internal.LoadingCache.get(LoadingCache.java:34)
at com.alibaba.excel.support.cglib.core.AbstractClassGenerator$ClassLoaderData.get(AbstractClassGenerator.java:134)
at com.alibaba.excel.support.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:319)
at com.alibaba.excel.support.cglib.beans.BeanMap$Generator.create(BeanMap.java:140)
at easyexcel.core@3.3.3/com.alibaba.excel.util.BeanMapUtils.create(BeanMapUtils.java:29)
at easyexcel.core@3.3.3/com.alibaba.excel.read.listener.ModelBuildEventListener.buildUserModel(ModelBuildEventListener.java:141)
at easyexcel.core@3.3.3/com.alibaba.excel.read.listener.ModelBuildEventListener.invoke(ModelBuildEventListener.java:42)
at easyexcel.core@3.3.3/com.alibaba.excel.read.listener.ModelBuildEventListener.invoke(ModelBuildEventListener.java:35)
at easyexcel.core@3.3.3/com.alibaba.excel.read.processor.DefaultAnalysisEventProcessor.dealData(DefaultAnalysisEventProcessor.java:109)
at easyexcel.core@3.3.3/com.alibaba.excel.read.processor.DefaultAnalysisEventProcessor.endRow(DefaultAnalysisEventProcessor.java:50)
at easyexcel.core@3.3.3/com.alibaba.excel.analysis.v07.handlers.RowTagHandler.endElement(RowTagHandler.java:66)
at easyexcel.core@3.3.3/com.alibaba.excel.analysis.v07.handlers.sax.XlsxRowHandler.endElement(XlsxRowHandler.java:99)
at java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:618)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1728)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2899)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:605)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:542)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:889)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:825)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
at java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1224)
at java.xml/com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:637)
at easyexcel.core@3.3.3/com.alibaba.excel.analysis.v07.XlsxSaxAnalyser.parseXmlSource(XlsxSaxAnalyser.java:239)
at easyexcel.core@3.3.3/com.alibaba.excel.analysis.v07.XlsxSaxAnalyser.execute(XlsxSaxAnalyser.java:260)
at easyexcel.core@3.3.3/com.alibaba.excel.analysis.ExcelAnalyserImpl.analysis(ExcelAnalyserImpl.java:124)
at easyexcel.core@3.3.3/com.alibaba.excel.ExcelReader.read(ExcelReader.java:66)
at easyexcel.core@3.3.3/com.alibaba.excel.ExcelReader.read(ExcelReader.java:56)
at com.reiki.nrp.reikinrp/com.reiki.nrp.NrpController.readData(NrpController.java:2209)
at com.reiki.nrp.reikinrp/com.reiki.nrp.NrpController.analyzeFile(NrpController.java:54)
at com.reiki.nrp.reikinrp/com.reiki.nrp.NrpController.onButtonClick(NrpController.java:44)
... 56 more
Caused by: java.lang.IllegalAccessException: module com.reiki.nrp.reikinrp does not open com.reiki.nrp.domain to unnamed module @28dbc27c
at java.base/java.lang.invoke.MethodHandles.privateLookupIn(MethodHandles.java:259)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at com.alibaba.excel.support.cglib.core.ReflectUtils.defineClass(ReflectUtils.java:505)
... 92 more