Je suis nouveau à bave et ont défini deux règles:Drools ne correspond pas à mon fait
package com.mgaudin.sandbox.drools.rules;
import com.mgaudin.sandbox.drools.models.Lead;
rule "rule1"
when
l: Object()
then
System.out.println(l.getClass().getCanonicalName());
end
Et
package com.mgaudin.sandbox.drools.rules;
import com.mgaudin.sandbox.drools.models.Lead;
rule "rule2"
when
Lead()
then
System.out.println("It's a match !");
end
Lorsque j'insère une nouvelle com.mgaudin.sandbox.drools.models. fait le plomb, la sortie est la suivante:
com.mgaudin.sandbox.drools.models.Lead
on peut donc en déduire que:
- Les règles compile correctement
- Les règles sont exécutées
- La première règle correspond à un fait de type « com.mgaudin.sandbox.drools.models.Lead »
Alors, pourquoi le règle "rule2" ne correspond pas?
Merci!
Cela signifie-t-il que vous semblez avoir deux fichiers .DRL? Les deux sont-ils compilés dans un seul KieBase? Comment? Avez-vous vérifié qu'il y a deux règles? – laune
Les deux sont compilés dans le même KieBase (la première règle était juste là pour prouver que mes drools fonctionnaient correctement et afficher le nom de la classe). J'ai essayé de compiler ma règle en utilisant le KieFileSystem/KieBuilder ou en utilisant un KnowledgeBuilder. Les deux compilés bien mais ont produit le même résultat. Aussi, pour être sûr que mon fichier DRL a été utilisé, j'ai essayé de modifier le même fichier avec eval (true) qui sort "It's a match!". – Maxime
S'il n'y a pas de problèmes cachés dans votre histoire, je dirais que c'est un bug. Faire un exemple complet (Java minimum, DRL), énoncer la version de Drools et élever un JIRA. - Si vous éditez votre question, en ajoutant tout ce code et info, je l'examinerais. – laune