Drools

Drools - Java - Programmation

Marsh Posté le 20-01-2006 à 11:12:30    

bonjour et bonne année a tous  :bounce:  
 
Voila je suis a la decouverte de drools et je n'arrive pas a comprendre pourquoi l'exemple que j'ai pompé sur le site http://drools.codehaus.org/ ne fonctionne pas.
 
La classe java:

Code :
  1. package drools;
  2. import java.io.IOException;
  3. import java.net.URL;
  4. import org.drools.DroolsException;
  5. import org.drools.RuleBase;
  6. import org.drools.WorkingMemory;
  7. import org.drools.event.DebugWorkingMemoryEventListener;
  8. import org.drools.io.RuleBaseLoader;
  9. import org.xml.sax.SAXException;
  10. public class HelloWorldExample
  11. {
  12.     public static void main( String[] args ) throws DroolsException,
  13.                                                     SAXException,
  14.                                                     IOException
  15.     {
  16.         URL url = HelloWorldExample.class.getResource("helloworld.java.drl" );
  17.         assert(url != null);
  18.         RuleBase ruleBase = RuleBaseLoader.loadFromUrl(url);
  19.         System.out.println( "FIRE RULES(Hello)" );
  20.         System.out.println( "----------" );
  21.         WorkingMemory workingMemory = ruleBase.newWorkingMemory( );
  22.         workingMemory.addEventListener(new DebugWorkingMemoryEventListener());
  23.         workingMemory.assertObject("Hello" );
  24.         workingMemory.fireAllRules();
  25.     }
  26. }


 
et le fichier drl qui contient les regle:

Code :
  1. <?xml version="1.0"?>
  2. <rule-set name="HelloWorld"
  3.           xmlns="http://drools.org/rules"
  4.           xmlns:java="http://drools.org/semantics/java"
  5.           xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
  6.           xs:schemaLocation="http://drools.org/rules rules.xsd
  7.                              http://drools.org/semantics/java java.xsd">
  8.   <java:import>java.lang.Object</java:import>
  9.   <java:import>java.lang.String</java:import>
  10.  
  11.   <java:functions>
  12.    public void helloWorld(String hello)
  13.    {
  14.     System.err.println(hello + " World" );
  15.    }
  16.    public void goodbyeWorld(String goodbye)
  17.    {
  18.     System.out.println(goodbye + " Cruel World" );
  19.    }
  20.   </java:functions>
  21.   <rule name="Hello World">
  22.     <parameter identifier="hello">
  23.       <class>String</class>
  24.     </parameter>
  25.     <java:condition>hello.equals("Hello" )</java:condition>
  26.     <java:consequence>
  27.       helloWorld( hello );
  28.     </java:consequence>
  29.   </rule>
  30.   <rule name="Goodbye Cruel World">
  31.     <parameter identifier="goodbye">
  32.       <class>String</class>
  33.     </parameter>
  34.     <java:condition>goodbye.equals("Goodbye" )</java:condition>
  35.     <java:consequence>
  36.       goodbyeWorld( goodbye );
  37.     </java:consequence>
  38.   </rule>
  39.   <rule name="Debug">
  40.     <parameter identifier="object">
  41.       <class>Object</class>
  42.     </parameter>
  43.     <java:consequence>
  44.       System.out.println("Asserted object: " + object);
  45.     </java:consequence>
  46.   </rule>
  47. </rule-set>


 
et la mon exception:

Code :
  1. Exception in thread "main" java.lang.NoClassDefFoundError: org/codehaus/janino/Scanner$LocatedException
  2. at org.drools.semantics.java.JavaFunctionsFactory.newFunctions(JavaFunctionsFactory.java:70)
  3. at org.drools.io.FunctionsHandler.end(FunctionsHandler.java:105)
  4. at org.drools.io.RuleSetReader.endElement(RuleSetReader.java:617)
  5. at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:633)
  6. at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.endElement(XMLSchemaValidator.java:818)
  7. at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanEndElement(XMLNSDocumentScannerImpl.java:719)
  8. at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1685)
  9. at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:368)
  10. at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:834)
  11. at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
  12. at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:148)
  13. at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1242)
  14. at javax.xml.parsers.SAXParser.parse(SAXParser.java:375)
  15. at org.drools.io.RuleSetReader.read(RuleSetReader.java:443)
  16. at org.drools.io.RuleSetReader.read(RuleSetReader.java:309)
  17. at org.drools.io.RuleBaseLoader.loadFromUrl(RuleBaseLoader.java:155)
  18. at org.drools.io.RuleBaseLoader.loadFromUrl(RuleBaseLoader.java:115)
  19. at org.drools.io.RuleBaseLoader.loadFromUrl(RuleBaseLoader.java:100)
  20. at drools.HelloWorldExample.main(HelloWorldExample.java:22)


 
Voila merci d'avance  :hello:

Reply

Marsh Posté le 20-01-2006 à 11:12:30   

Reply

Marsh Posté le 20-01-2006 à 11:22:24    

probleme de classpath, il te manque janino ....

Reply

Marsh Posté le 20-01-2006 à 11:38:37    

souk a écrit :

probleme de classpath, il te manque janino ....


 
Non c'est bon je viens de trouver j'avais mis la version 2.3.17 alors qu'il fallait mettre la 2.3.8 c bon merci quand meme

Reply

Marsh Posté le 31-01-2012 à 21:10:23    

slt,
 
j'utilise drools pour la premiere fois ,est ce quelqu'un peux me guidé dans l'installation
 
merci

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed