Я только что установил Drools plug-in
в Eclipse (версия 3.5.2), и я пытаюсь запустить «Hello World ", который поставляется с плагином.Невозможно запустить пример «Hello World» Drools в Eclipse: исключение среды выполнения org.drools.RuntimeDroolsException: невозможно загрузить диалект
Когда я запускаю код, я получаю runtime error
со следующей трассировки стека:
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
Вот некоторые из соответствующего кода Java:
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 - Спасибо за эту информацию! Я добавил банку вручную, и теперь все отлично! – user396377
У меня есть ядро JDT в моем пути к классам - оно находится в каталоге плагина и является незначительной версией (у меня есть org.eclipse.jdt.core_3.6.0.v_A58.jar в каталоге плагина для реализации Eclipse, который я использую - и на самом деле org.eclipse.jdt.core_3.6.1.v_A68_R36x.jar также существует сейчас, потому что я пытался обновить предыдущую банку, но это нарушает Eclipse). Тем не менее, я по-прежнему получаю ту же ошибку: Невозможно загрузить диалект 'org.drools.rule.builder.dialect.java.JavaDialectConfiguration: java' .... и т. Д. –
Я исправил свою проблему: это в основном то, что JDT проблемы, и мне нужно было обновить JBoss Drools Core в меню «Установить новое программное обеспечение» в разделе «Справка» в Helios. Кроме того, используйте URL-адреса JBoss для вашей конкретной версии Eclipse - это можно найти по адресу: http://www.jboss.org/tools/download.html. Моя проблема заключалась в том, что я пытался установить банки непосредственно, потому что я не мог найти вышеупомянутый URL-адрес, но я мог найти банки, которые, как я думал, были правильными. О, хорошо ... получите правильную упаковку для своей версии. –