|

楼主 |
发表于 2017-2-23 16:51:38
|
显示全部楼层
本帖最后由 jjbboox 于 2017-2-23 16:53 编辑
我现在这样做
先以importExcel为蓝本,自己建一个importExcelForUpdate的action,让画面的import组件的action指向该自建的action,然后在这个action中完成导入excel数据的检查和更新数据库的动作。如果错误就抛业务异常出去,正确就返回更新数据的件数。
但是原来放在beforeAction后处理中的代码,复制到importExcelForUpdate中,编译没有问题,执行时却出错了。
错误信息如下。
org/apache/poi/ss/usermodel/Workbook
编码:
原因:
[url=]隐藏详细[/url]
java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at com.justep.system.action.Engine.invokeActions(Native Method) at com.justep.system.action.Engine.invokeActions(Unknown Source) at com.justep.business.server.BusinessServer.doAction(Unknown Source) at com.justep.business.server.BusinessServer.doExcute(Unknown Source) at com.justep.business.server.BusinessServer.excute(Unknown Source) at com.justep.business.server.BusinessServer.excute(Unknown Source) at com.justep.business.server.BusinessServerServlet.execService(Unknown Source) at com.justep.business.server.BusinessServerServlet.service(Unknown Source) at javax.servlet.http.HttpServlet.service(HttpServlet.java:723) at com.justep.x.bs.BusinessServerServlet.service(Unknown Source) at javax.servlet.http.HttpServlet.service(HttpServlet.java:723) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) at java.lang.Thread.run(Thread.java:745) Caused by: java.lang.NoClassDefFoundError: org/apache/poi/ss/usermodel/Workbook at HRP0020.importExcelForUpdateQuit(HRP0020.java:25) ... 27 more Caused by: java.lang.ClassNotFoundException: 模块"/Makita/HRP0020/logic/code"中找不到类"org.apache.poi.ss.usermodel.Workbook" at com.justep.model.impl.ModelImpl$ModelClassLoader$1.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 28 more
能帮忙看一下具体什么原因吗?
- //获得excel文件
- Workbook workBook = (Workbook)ModelUtils.getRequestContext().getActionContext().getParameter("excel");
- Sheet sheet = workBook.getSheetAt(0);
- Integer count = 0;
-
- //获得mapping文件
- ImportConfig importConfig = (ImportConfig)ModelUtils.getRequestContext().getActionContext().getParameter("config");
- String keyWord = importConfig.getKeyWord();
- System.out.println(keyWord);
- int startLineExcel = importConfig.getRowRange(0, workBook).getStart() - 1;
- String ConceptName = importConfig.getConceptConfig().getName();
- String kSql = "SELECT " + ConceptName + ".* FROM " + ConceptName + " " + ConceptName + " WHERE 1=1 ";
-
- //用来对日期字段进行格式化
- DateFormat df = DateFormat.getDateInstance();
-
- //从mapping文件中获取字段map<字段id, ExcelCellIndex>
- List<ImportRelationConfig> list = importConfig.getConceptConfig().getRelationConfigs();
- HashMap<String, Integer> itemMap = new HashMap<String, Integer>();
复制代码
错误信息的第25行是 上面代码段的第3行
Sheet sheet = workBook.getSheetAt(0);
是否在importExcel中无法取到excel文件和mapping文件?那么在importExcel action中需要如何取到sheet和mapping config?
|
|