2010-07-21 9 views
5

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; 
} 

risposta

7

ti manca l'eclissi JDT jar principale nel classpath. Se non si utilizza il contenitore del percorso di classe Drools o se è stato creato manualmente il proprio runtime, assicurarsi che jar appartenga al proprio percorso di classe o alla directory di runtime. Se si utilizza il contenitore del percorso di classe Drools e viene generato un runtime predefinito e il jar principale JDT non è presente, assicurarsi di utilizzare una versione recente del plug-in che supporti Eclipse 3.5.2. Ovviamente è anche possibile aggiungere manualmente il jar JDT e ricreare il runtime.

Maggiori informazioni su tempi di esecuzione può essere trovato alla http://download.jboss.org/drools/release/5.1.1.34858.FINAL/drools-5.1.1-docs.zip e aprire drools-5.1.1-docs.zip\drools-flow\html\ch.Drools_Eclipse_IDE_Features.html

+0

Kris - Grazie per questa informazione! Ho aggiunto il barattolo manualmente e ora tutto funziona perfettamente! – user396377

+0

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. –

+0

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. –

1

Se si utilizza un JDK 1.7 o sopra, avrete impostare un parametro prima di creare JVM perché Drools utilizzato su JNI4NET del campione è la versione 5.1 e non funziona su JDK 1.7 o versioni successive.

uso provare questa linea prima di creare JVM:

var bridgeSetup = new BridgeSetup(); 
// ... 
bridgeSetup.AddJVMOption("-Ddrools.dialect.java.compiler.lnglevel", "1.6"); 
// ... 
Bridge.CreateJVM(bridgeSetup); 
1

Così ho finalmente iniziato sopra.

ho fatto la seguente (aprile 2014)

  1. Partendo nuova installazione di Eclipse Keplero
  2. Vai a Eclipse Marketplace e cercare "JBoss Developer Studio (Keplero)" e quindi installare: "Red Cappello JBoss Developer Studio (Keplero) 7.1.1.GA "(la versione potrebbe variare)
  3. riavviare Eclipse
  4. Vai a Eclipse Marketplace e cercare "JBoss Developer Studio (Keplero)" e quindi installare:" JBoss Tools (Kepler) 4.1.2.Finale "(La versione può variare)
  5. Riavvia Eclipse.
  6. Installare "drools". Vai al menu di Eclipse e poi "Aiuto"/"Installa nuovo software" e aggiungi l'URL seguente. Drools_UpdateSite - http://download.jboss.org/drools/release/6.0.0.Final/org.drools.updatesite/ Ho installato ogni opzione.
  7. Riavvia Eclipse.
  8. Passare a Nuovo progetto e aggiungere un nuovo "Progetto Drools".

Quindi sono stato in grado di eseguire la sbavatura "ciao mondo".

ho anche aggiunto:

Vai a Eclipse Menu e poi "Help"/"Install New Software" e aggiungere l'URL di seguito.

http://download.eclipse.org/technology/m2e/releases 

e installato

"m2e - Maven Integration for Eclipse" 
and "m2e - slf4j over logback logging (Optional)" 
0

Ho affrontato lo stesso problema. Come indicato in altre risposte, se il runtime viene creato manualmente (come nel mio caso), è necessario aggiungere il jar core JDT di eclipse nel classpath. ecco il link per il download per il jar->http://www.java2s.com/Code/Jar/o/Downloadorgeclipsejdtcore371jar.htm Aggiungendo questo al classpath risolto il mio problema.

Problemi correlati