2017-08-22 2 views
0

Nous avons un assez grand ensemble de règles qui sont basées sur des modèles et la KieBase est créée par programmation. C'est le cas pour les sessions Stateful et sans état.Drools construction KieBase par programmation ne fonctionne pas dans Windows

Ces règles, lorsqu'elles sont exécutées en tant que tests unitaires, fonctionnent sous Mac OS mais pas sous Windows.

Le projet de reproduire cette question est ici: Test project (Regardez sous src/test/java pour l'utilitaire pour créer KieSession)

Si serait utile si vous explique ce que quelqu'un me manque.

+0

Que voulez-vous dire par « ça ne marche pas »? Avez-vous des erreurs de compilation? Un Kbase vide? Des exceptions? –

+0

Il n'y avait pas d'erreurs de compilation, car les règles de sessions sans état n'étaient pas exécutées. Pour la session avec état, les variables globales n'étaient pas résolues. –

Répondre

0

Vous avez ceci:

private static final String OUTPUT_DRL_PREFIX = "src" + File.separator + "main" + File.separator + "resources" ...; 

KieFileSystem kfs = kieServices.newKieFileSystem(); 

String outFile = OUTPUT_DRL_PREFIX + "result" + DRL; 
kfs.write(outFile, rules); 

Le KieFileSystem n'est pas un système de fichiers Windows. Il ne va pas changer son idée d'un séparateur de nom lorsque l'application est en cours d'exécution sur un système d'exploitation ou autre.

utilisez simplement

static final String KIE_SEP = '/'; 
+0

Merci @laune. Utilisation de la barre oblique –