[rules-dev] Exception with Drools-XLS and Maven: "An error occured opening the workbook."

Michael Neale michael.neale at gmail.com
Wed Aug 19 17:43:48 EDT 2009


yes - I think in all cases it turned out to be munging of the XLS file
(it is certainly not text ;) So I think that is what the jexcel
library reports when things go badly wrong...

That other error in JIRA is to do with supporting open office files
(ie you get that error if you try to load up a ODS file).

Is this something we can raise with the maven plugin to not mess with
XLS files?



On Thu, Aug 20, 2009 at 12:36 AM, Bernd Rücker<bernd.ruecker at camunda.com> wrote:
> Okay, it took some more investigation and one maven specialist of the
> company to figure it out, we added this to the maven pom and now it works:
>
> <plugin>
>  <groupId>org.apache.maven.plugins</groupId>
>  <artifactId>maven-resources-plugin</artifactId>
>  <configuration>
>    <encoding>UTF-8</encoding>
>    <nonFilteredFileExtensions>
>      <nonFilteredFileExtension>xls</nonFilteredFileExtension>
>    </nonFilteredFileExtensions>
>  </configuration>
> </plugin>
>
> Cheers
> Bernd
>
> -----Ursprüngliche Nachricht-----
> Von: rules-dev-bounces at lists.jboss.org
> [mailto:rules-dev-bounces at lists.jboss.org] Im Auftrag von Geoffrey De Smet
> Gesendet: Dienstag, 11. August 2009 20:22
> An: rules-dev at lists.jboss.org
> Betreff: Re: [rules-dev] Exception with Drools-XLS and Maven: "An error
> occured opening the workbook."
>
> By default the maven resources plugin copies resources in the encoding
> of the platform it's build on IRCC.
> It's better to lock that down on UTF-8.
> It even logs a warning if it's not locked down.
> Is that xls file a resource that's being copied?
>
> With kind regards,
> Geoffrey De Smet
>
>
> Bernd Rücker schreef:
>> Hi all.
>>
>>
>>
>> I recently had the same exception as reported in
>> https://jira.jboss.org/jira/browse/GUVNOR-286, but didn’t find anything
>> on the web. We currently have the same error with Maven and Drools
>> 5.0.1, very strange:
>>
>>
>>
>> Testcode
>>
>>
>>
>>     public static void main(String[] args) {
>>
>>            final DecisionTableConfiguration dtableconfiguration =
>> KnowledgeBuilderFactory.newDecisionTableConfiguration();
>>
>>             dtableconfiguration.setInputType( DecisionTableInputType.XLS
> );
>>
>>
>>
>>             final KnowledgeBuilder kbuilder =
>> KnowledgeBuilderFactory.newKnowledgeBuilder();
>>
>>             kbuilder.add(
>> ResourceFactory.newClassPathResource("Sample.xls", Test.class ),
>>
>>                                   ResourceType.DTABLE,
>>
>>                                   dtableconfiguration );
>>
>>
>>
>>             final KnowledgeBase kbase =
>> KnowledgeBaseFactory.newKnowledgeBase();
>>
>>             kbase.addKnowledgePackages( kbuilder.getKnowledgePackages()
> );
>>
>>
>>
>>             // typical decision tables are used statelessly
>>
>>             StatefulKnowledgeSession ksession =
>> kbase.newStatefulKnowledgeSession();
>>
>>     }
>>
>>
>>
>> Stacktrace:
>>
>>
>>
>> org.drools.template.parser.DecisionTableParseException: An error occured
>
>> opening the workbook. It is possible that the encoding of the document
>> did not match the encoding of the reader.
>>
>>     at
>>
> org.drools.decisiontable.parser.xls.ExcelParser.parseFile(ExcelParser.java
> :89)
>>
>>     at
>>
> org.drools.decisiontable.SpreadsheetCompiler.compile(SpreadsheetCompiler.j
> ava:90)
>>
>>     at
>>
> org.drools.decisiontable.SpreadsheetCompiler.compile(SpreadsheetCompiler.j
> ava:69)
>>
>>     at
>>
> org.drools.decisiontable.DecisionTableProviderImpl.compileStream(DecisionT
> ableProviderImpl.java:29)
>>
>>     at
>>
> org.drools.decisiontable.DecisionTableProviderImpl.loadFromInputStream(Dec
> isionTableProviderImpl.java:19)
>>
>>     at
>>
> org.drools.compiler.DecisionTableFactory.loadFromInputStream(DecisionTable
> Factory.java:16)
>>
>>     at
>>
> org.drools.compiler.PackageBuilder.addKnowledgeResource(PackageBuilder.jav
> a:508)
>>
>>     at
>>
> org.drools.builder.impl.KnowledgeBuilderImpl.add(KnowledgeBuilderImpl.java
> :31)
>>
>>     at Test.main(Test.java:21)
>>
>> Caused by: jxl.read.biff.BiffException: Unable to recognize OLE stream
>>
>>     at jxl.read.biff.CompoundFile.<init>(CompoundFile.java:111)
>>
>>     at jxl.read.biff.File.<init>(File.java:113)
>>
>>     at jxl.Workbook.getWorkbook(Workbook.java:250)
>>
>>     at jxl.Workbook.getWorkbook(Workbook.java:235)
>>
>>     at
>>
> org.drools.decisiontable.parser.xls.ExcelParser.parseFile(ExcelParser.java
> :74)
>>
>>     ... 8 more
>>
>>
>>
>> The strange thing: When we tried it with Eclipse (3.4.2) and created a
>> Drools project, everything worked. When we created a maven project and
>> added exactly the same libraries, the exception was caused.
>>
>>
>>
>> We tracked it down to the .project file:
>>
>>
>>
>> <?xml version="1.0" encoding="UTF-8"?>
>>
>> <projectDescription>
>>
>>     <name>iks_drools</name>
>>
>>     <comment></comment>
>>
>>     <projects>
>>
>>     </projects>
>>
>>     <buildSpec>
>>
>>         <buildCommand>
>>
>>             <name>org.eclipse.jdt.core.javabuilder</name>
>>
>>             <arguments>
>>
>>             </arguments>
>>
>>         </buildCommand>
>>
>>         <!-- buildCommand>
>>
>>             <name>org.maven.ide.eclipse.maven2Builder</name>
>>
>>             <arguments>
>>
>>             </arguments>
>>
>>         </buildCommand -->
>>
>>         <buildCommand>
>>
>>             <name>org.drools.eclipse.droolsbuilder</name>
>>
>>             <arguments>
>>
>>             </arguments>
>>
>>         </buildCommand>
>>
>>     </buildSpec>
>>
>>     <natures>
>>
>>         <nature>org.eclipse.jdt.core.javanature</nature>
>>
>>         <!-- nature>org.maven.ide.eclipse.maven2Nature</nature -->
>>
>>     </natures>
>>
>> </projectDescription>
>>
>>
>>
>> With the comments it works, without the comments and the maven2Builder
>> and natures it causes the exception. We are puzzled.
>>
>>
>>
>> Any ideas?
>>
>>
>>
>> Hopefully it is OK to post that to the dev lists, seems a pretty deep
> thing…
>>
>>
>> Thanks a lot and Cheers
>>
>> Bernd
>>
>>
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> rules-dev mailing list
>> rules-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/rules-dev
>
> _______________________________________________
> rules-dev mailing list
> rules-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-dev
> _______________________________________________
> rules-dev mailing list
> rules-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-dev
>



-- 
Michael D Neale
home: www.michaelneale.net
blog: michaelneale.blogspot.com



More information about the rules-dev mailing list