Ho appena installato il Drools plug-in
in Eclipse (versione 3.5.2) e sto cercando di eseguire "Hello" Mondo "esempio che viene fornito con il plug-in.Impossibile eseguire "Hello World" esempio di Drools in Eclipse: eccezione di runtime org.drools.RuntimeDroolsException: impossibile caricare il dialetto
Quando eseguo il codice, io sono sempre runtime error
con la seguente analisi dello stack:
org.drools.RuntimeDroolsException: Unable to load dialect 'org.drools.rule.builder.dialect.java.JavaDialectConfiguration:java:org.drools.rule.builder.dialect.java.JavaDialectConfiguration'
at org.drools.compiler.PackageBuilderConfiguration.addDialect(PackageBuilderConfiguration.java:274)
at org.drools.compiler.PackageBuilderConfiguration.buildDialectConfigurationMap(PackageBuilderConfiguration.java:259)
at org.drools.compiler.PackageBuilderConfiguration.init(PackageBuilderConfiguration.java:176)
at org.drools.compiler.PackageBuilderConfiguration.<init>(PackageBuilderConfiguration.java:153)
at org.drools.compiler.PackageBuilder.<init>(PackageBuilder.java:242)
at org.drools.compiler.PackageBuilder.<init>(PackageBuilder.java:142)
at org.drools.builder.impl.KnowledgeBuilderProviderImpl.newKnowledgeBuilder(KnowledgeBuilderProviderImpl.java:29)
at org.drools.builder.KnowledgeBuilderFactory.newKnowledgeBuilder(KnowledgeBuilderFactory.java:29)
at com.sample.DroolsTest.readKnowledgeBase(DroolsTest.java:39)
at com.sample.DroolsTest.main(DroolsTest.java:23)
Caused by: java.lang.RuntimeException: **The Eclipse JDT Core jar is not in the classpath**
at org.drools.rule.builder.dialect.java.JavaDialectConfiguration.setCompiler(JavaDialectConfiguration.java:94)
at org.drools.rule.builder.dialect.java.JavaDialectConfiguration.init(JavaDialectConfiguration.java:55)
at org.drools.compiler.PackageBuilderConfiguration.addDialect(PackageBuilderConfiguration.java:270)
... 9 more
Ecco parte del codice Java corrispondente:
public static final void main(String[] args) {
try {
// load up the knowledge base
KnowledgeBase kbase = readKnowledgeBase();
}
}
private static KnowledgeBase readKnowledgeBase() throws Exception {
KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
kbuilder.add(ResourceFactory.newClassPathResource("Sample.drl"), ResourceType.DRL);
KnowledgeBuilderErrors errors = kbuilder.getErrors();
if (errors.size() > 0) {
for (KnowledgeBuilderError error : errors) {
System.err.println(error);
}
throw new IllegalArgumentException("Could not parse knowledge.");
}
KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());
return kbase;
}
Kris - Grazie per questa informazione! Ho aggiunto il barattolo manualmente e ora tutto funziona perfettamente! – user396377
Ho core JDT nel mio classpath - è nella directory plugin ed è una differenza di versione minore (ho org.eclipse.jdt.core_3.6.0.v_A58.jar nella directory plugin per l'implementazione di Eclipse che sto usando - e infatti anche org.eclipse.jdt.core_3.6.1.v_A68_R36x.jar è lì perché ho cercato di aggiornare il vaso precedente ma questo rompe Eclipse). Tuttavia ho ancora lo stesso errore: Impossibile caricare il dialetto 'org.drools.rule.builder.dialect.java.JavaDialectConfiguration: java' .... ecc. –
Ho risolto il mio problema: è fondamentalmente che il JDT aveva problemi e avevo bisogno di aggiornare JBoss Drools Core dall'opzione di menu Installa nuovo software in Guida in Helios. Inoltre, utilizza gli url JBoss per la tua specifica versione di Eclipse, disponibile all'indirizzo: http://www.jboss.org/tools/download.html. Il mio problema era che stavo provando ad installare i vasi direttamente perché non potrei trovare l'url sopraccitato ma potrei trovare i barattoli che ho pensato fossero corretti. Oh bene .... prendi l'imballo giusto per la tua versione. –