나는 완료 될 때까지 잘 실행 Eclipse에서 매우 간단한 Drools가 프로젝트를 가지고,하지만 난 열거 나 내 .drl 파일을 클릭하면, 다음과 같은 오류가 이클립스에서 팝업 :Drools가 - Drools가에서 ClassCastException이 6
오류가 발생했습니다. 자세한 내용은 오류 로그를 참조하십시오. 내가 확인을 공격하고 프로그램을 다시 실행하면 org.drools.core.base.accumulators.BigDecimalSumAccumulateFunction은 여전히 잘 실행, org.drools.runtime.rule.AccumulateFunction
으로 캐스팅 할 수 없습니다. .drl 파일을 클릭하고 다시 클릭 할 때마다 오류가 다시 나타납니다. !
ENTRY의 org.eclipse.ui.workbench 2016년 8월 25일 4 2 23 : 35 :! 플러그에서 코드를 호출 할 때 24.144
MESSAGE 문제가 발생 이클립스 로그는 다음 스택 트레이스를 갖는다 in : "org.eclipse.ui.workbench".
STACK 0 java.lang.ClassCastException가! org.drools.core.base.accumulators.BigDecimalSumAccumulateFunction가 org.drools.compiler.PackageBuilderConfiguration.loadAccumulateFunction에서 org.drools.runtime.rule.AccumulateFunction 캐스트 할 수없는 (org.drools.compiler.PackageBuilderConfiguration.init (PackageBuilderConfiguration.java:194) org.drools.compiler에서 에서 org.drools.compiler.PackageBuilderConfiguration.buildAccumulateFunctionsMap (PackageBuilderConfiguration.java:479) 에서 PackageBuilderConfiguration.java:530) . PackageBuilderConfiguration. (PackageBuilderConfiguration.java:170) at org.drools.eclipse.DroolsEclipsePlugin.generateParsedResource (DroolsEclipsePlugin.java:612) at org.drools.eclipse.DroolsEclipsePlugin.parseResource (DroolsEclipsePlugin.java:515) at org.drools.eclipse.editors.outline.RuleContentOutlinePage.initRules (RuleContentOutlinePage.java:279) at org.drools.eclipse.editors. outline.RuleContentOutlinePage.update (RuleContentOutlinePage.java:159) org.drools.eclipse.editors.outline.RuleContentOutlinePage.createControl에서 (RuleContentOutlinePage.java:133)
여기에 전체 스택 추적을 참조하십시오 : http://pastebin.com/hJK1Cs03
을내 프로그램 :
import org.kie.api.KieServices;
import org.kie.api.runtime.KieContainer;
import org.kie.api.runtime.KieSession;
public class GhostFactTest {
public static final void main(String[] args) {
try {
// load up the knowledge base
KieServices ks = KieServices.Factory.get();
KieContainer kContainer = ks.getKieClasspathContainer();
KieSession kSession = kContainer.newKieSession("ksession-rules");
FruitFact f1 = new FruitFact(1, "APPLE", "RED");
FruitFact f2 = new FruitFact(2, "APPLE", "GREEN");
kSession.insert(f1);
kSession.insert(f2);
kSession.fireAllRules();
System.out.println("\n********************\nSUCCESS!\n********************");
} catch (Throwable t) {
t.printStackTrace();
}
}
}
.drl에는 오류를 발생시키는 규칙이 전혀 필요하지 않습니다. 컴파일 타임이나 런타임에는 오류가 없습니다.
나는 Drools 6을 가지고 있습니다. [0-4] .0. 최종은 별도의 Drools 런타임으로 설치되었으며 Drools 6.0.0.Final을 제외한 모든 버전에서이 문제가 나타납니다. Java7을 실행 중입니다. 나는 Drools 5.5.0.Final과 비슷한 프로그램을 아무 문제없이 실행할 수 있습니다.
예상되는 동작과 함께 프로그램이 성공하고 .drl이 비어 있어도 오류가 발생하는 경우 Eclipse와 프로젝트 설정에 문제가 있다고 생각합니다. 누구든지이 문제를 해결하는 방법에 대한 지침이 있습니까? 미리 감사드립니다.
귀하의 결론에 동의합니다. Eclipse 관련 문제이며, 귀하의 코드에는 아무런 문제가 없습니다.이 댓글을 찾을 수 있습니다 http://stackoverflow.com/questions/33347327/drools-6-3-error-when-using-java-8#comment54518686_33347327 다른 질문에 유용합니다, 같은 근본 원인이 나타납니다 - 런타임 Eclipse 설정이 잘못되었습니다. ? – tarilabs