2016-08-26 5 views
0

私が完了するまでうまく走るEclipseでの非常にシンプルなのDroolsプロジェクトを持っていますが、私が開いたり、私の.drlというファイルをクリックすると、次のエラーがEclipseでポップアップ表示:Droolsの - Droolsの6中にClassCastException

エラーが発生しました。詳細についてはエラーログを参照してください。私はOKヒットし、再度プログラムを実行すると org.drools.core.base.accumulators.BigDecimalSumAccumulateFunctionは、それはまだ正常に動作、org.drools.runtime.rule.AccumulateFunction

にキャストすることはできません。 .drlファイルをクリックしてから戻ると、エラーが再びポップアップします。 !

ENTRYのorg.eclipse.ui.workbench 4 2 2016年8月25日23:35:!プラグインのコードを呼び出すときに24.144

MESSAGEの問題が発生したEclipseのログには、次のスタックトレースを持っています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 org.drools.eclipse.editors.outline.RuleContentOutlinePage.createControlで(RuleContentOutlinePage.java:159) (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.Finalは別々のDroolsランタイムとしてインストールされています.Drools 6.0.0.Finalを除くすべてのバージョンでこの問題が発生しています。私はJava7を実行しています。私はDrools 5.5.0.Finalと非常によく似たプログラムを問題なく実行できます。

プログラムが正常に動作し、.drlが空であってもエラーがスローされた場合、Eclipseとプロジェクト設定に問題があると思う傾向があります。誰かがこれを解決する方法に関するガイダンスを持っていますか?前もって感謝します。

+0

あなたの結論に同意します。これはEclipse関連の問題です。コードに間違いはありません。あなたはこのコメントを見つけるかもしれないhttp://stackoverflow.com/questions/33347327/drools-6-3-error-when-using-java-8#comment54518686_33347327別の質問に役立つ、同じ根本的な原因 - 表示される実行時のEclipseの設定が間違っている? – tarilabs

答えて

0

問題は、Drools 6プロジェクトでDrools 5.5.0.Final Eclipseプラグインを使用していたことでした。 Drools 6.4.0.Final Eclipse plug-inにアップグレードした後、問題は解決しました。