[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:48:52 EDT 2009


hmm... might be a worthy of a wiki entry?

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