Drools的决策表xls文件转drl文件所依赖的poi版本
来源:互联网 发布:淘宝亲亲节是什么 编辑:程序博客网 时间:2024/05/21 10:46
1.最近的项目中使用到了Drools作为规则引擎,今天在开发决策表的导入功能时(xls文件转drl),网上提供的简要例子始终通不过,报找不到类的错误:
示例如下:
try { ruleTableConvertDRL("D:\\calculation.xls");} catch (IOException e) { e.printStackTrace();}
/** * 将xls决策表解析为普通规则文件 * @throws IOException */public File ruleTableConvertDRL(String ruleTablePath) throws IOException { SpreadsheetCompiler compiler = new SpreadsheetCompiler(); File inFile = new File(ruleTablePath); File outFile = new File("D:\\outFile.txt"); InputStream xlsStream = null; OutputStream fos = null; OutputStreamWriter osw = null; BufferedWriter out = null; try { xlsStream = new FileInputStream(inFile); fos = new FileOutputStream(outFile); osw = new OutputStreamWriter(fos); out = new BufferedWriter(osw); String strRule = compiler.compile(xlsStream, InputType.XLS); out.write(strRule); out.flush(); System.out.println("\n" + strRule); } catch (IOException e) { throw new IOException("没找到文件或写入文件错误"); }finally{ xlsStream.close(); fos.close(); osw.close(); out.close(); } return outFile;}
2.报错如下:
org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: org.apache.poi.ss.usermodel.Workbook.close()Vat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
Caused by: java.lang.NoSuchMethodError: org.apache.poi.ss.usermodel.Workbook.close()Vat org.drools.decisiontable.parser.xls.ExcelParser.parseWorkbook(ExcelParser.java:124)at org.drools.decisiontable.parser.xls.ExcelParser.parseFile(ExcelParser.java:83)at org.drools.decisiontable.SpreadsheetCompiler.compile(SpreadsheetCompiler.java:103)at org.drools.decisiontable.SpreadsheetCompiler.compile(SpreadsheetCompiler.java:76)
3.首先我的第一反应就是应该是jar包冲突,我当时用的drools版本是6.4,poi是3.9:
4.后来经过多次尝试,选择drools为7.0版本,poi为3.15版本时,测试通过,后台可以正常输出决策表内容
5.drools和poi版本如下:
<dependency> <groupId>org.kie</groupId> <artifactId>kie-api</artifactId> <version>7.0.0.Final</version></dependency><dependency> <groupId>org.drools</groupId> <artifactId>drools-core</artifactId> <version>7.0.0.Final</version></dependency><dependency> <groupId>org.drools</groupId> <artifactId>drools-compiler</artifactId> <version>7.0.0.Final</version></dependency><dependency> <groupId>org.drools</groupId> <artifactId>drools-decisiontables</artifactId> <version>7.0.0.Final</version></dependency><dependency> <groupId>org.drools</groupId> <artifactId>drools-templates</artifactId> <version>7.0.0.Final</version></dependency>
<!-- apahce poi --><dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.15</version></dependency><dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.15</version></dependency><dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml-schemas</artifactId> <version>3.15</version></dependency>
- Drools的决策表xls文件转drl文件所依赖的poi版本
- drools解析决策表为drl普通规则文件
- Drools入门-----------环境搭建,分析Helloworld Drools5.0的xls文件转drl文件提升解析效率 使用BRMS的Tomcat6.0配置
- Drools入门-----------环境搭建,分析Helloworld Drools5.0的xls文件转drl文件提升解析效率 使用BRMS的Tomcat6.0配置
- Drools入门-----------环境搭建,分析Helloworld Drools5.0的xls文件转drl文件提升解析效率 使用BRMS的Tomcat6.0配置
- 关于drools 5.3 的drl文件的UTF格式对 中文不能很好支持的原因。
- Drools决策表的使用
- 用csv格式的文件代替poi导出xls文件
- 使用poi读xls文件遇到的不可思议的问题,
- poi导出xls文件
- drools的规则文件
- XLS文件的读写
- PowerPCB gerber out时*.rep,*.pho,*.drl,*.lst各表示什么意思,在制板时哪些文件是制板商所需要的?
- POI读取xls文件笔记
- java poi 修改xls文件
- 右键新建97-03版本的doc,xls.ppt文件
- 基于Drools决策表的通用规则集设计
- Drools7.5.0教程(11)-drools决策表的使用
- JS动态生成代码监听事件
- java环境变量设置
- 借助 frp 随时随地访问自己的树莓派
- 莫然大神CICD文章,dockerfile编写原则
- nth-child,nth-of-type,first-of-type,last-of-type,nth-last-of-type,only-of-type等的区别
- Drools的决策表xls文件转drl文件所依赖的poi版本
- netcraft 查询网络数据结构
- 关于学习XHTML的一些笔记
- elasticsearch 集群安全重启节点
- android studio 超长log打印,解决log打印不全问题
- python 正则表达式
- [NOIP2017普及组]——棋盘
- install sublime text 3 in ubuntu,
- 流与文件