J'ai créé un projet de drools utilisant la version 6.5.0.Final et fonctionne correctement. Mais quand je créé un projet Maven son erreur de lancerDrools lance une exception dans le projet Maven
Caused by: java.lang.NoSuchMethodError: com.thoughtworks.xstream.XStream.fromXML(Ljava/net/URL;)Ljava/lang/Object;
at org.drools.compiler.kproject.models.KieModuleModelImpl$kModuleMarshaller.fromXML(KieModuleModelImpl.java:207)
at org.drools.compiler.kproject.models.KieModuleModelImpl.fromXML(KieModuleModelImpl.java:154)
at org.drools.compiler.kie.builder.impl.ClasspathKieProject.fetchKModule(ClasspathKieProject.java:179)
at org.drools.compiler.kie.builder.impl.ClasspathKieProject.fetchKModule(ClasspathKieProject.java:141)
at org.drools.compiler.kie.builder.impl.ClasspathKieProject.discoverKieModules(ClasspathKieProject.java:112)
at org.drools.compiler.kie.builder.impl.ClasspathKieProject.init(ClasspathKieProject.java:84)
at org.drools.compiler.kie.builder.impl.KieContainerImpl.<init>(KieContainerImpl.java:139)
at org.drools.compiler.kie.builder.impl.KieServicesImpl.newKieClasspathContainer(KieServicesImpl.java:135)
at org.drools.compiler.kie.builder.impl.KieServicesImpl.getKieClasspathContainer(KieServicesImpl.java:101)
at org.drools.compiler.kie.builder.impl.KieServicesImpl.getKieClasspathContainer(KieServicesImpl.java:79)
at com.powerschool.cc.validationengine.engine.ValidationEngine.getKieSession(ValidationEngine.java:49)
at com.powerschool.cc.validationengine.engine.ValidationEngine.validationEngine(ValidationEngine.java:24)
Voici mon dépendances dans le fichier POM
<dependencies>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20140107</version>
</dependency>
<dependency>
<groupId>org.kie</groupId>
<artifactId>kie-api</artifactId>
<version>${runtime.version}</version>
</dependency>
<dependency>
<groupId>org.drools</groupId>
<artifactId>drools-core</artifactId>
<version>${runtime.version}</version>
</dependency>
<dependency>
<groupId>org.drools</groupId>
<artifactId>drools-compiler</artifactId>
<version>${runtime.version}</version>
</dependency>
<dependency>
<groupId>javax.enterprise</groupId>
<artifactId>cdi-api</artifactId>
<version>${cdi.version}</version>
</dependency>
<dependency>
<groupId>org.jboss.weld.se</groupId>
<artifactId>weld-se-core</artifactId>
<version>${weld.version}</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.thoughtworks.xstream</groupId>
<artifactId>xstream</artifactId>
<version>1.4.10-java7</version> </dependency>
</dependencies>
Ce code
private KieSession getKieSession(){
KieServices services = null;
KieContainer container = null;
KieSession kieSession = null;
try{
services = KieServices.Factory.get();
container = services.getKieClasspathContainer();
kieSession = container.newKieSession("ksession-rules");
}catch(Exception e){
e.printStackTrace();
}
return kieSession;
}
getKieClasspathContainer jette l'erreur.
Vous avez recherché l'erreur et trouvé que l'ajout de la dépendance Xstream résoudra le problème, mais ce n'est pas le cas. Uing Java 7 et tomcat 7. Ai-je besoin d'ajouter une autre dépendance au POM? Quelqu'un a une idée?
effectivement j'ai essayé avec 1.4.9 aussi mais il donne la même erreur et l'exception lance de 'services.getKieClasspathContainer();' cette ligne –
Quand je suis en train de l'exécuter en utilisant Main(), son fonctionnement, mais quand je essayer de l'exécuter dans Tomcat je suis confronté à un problème. –