drools 4 プロジェクトのコンパイルに問題があります。ルール ファイルに次のようなエラーが表示されます。
Only a type can be imported. <<MyClassName>> resolves to a package
このため、インクリメンタル コンパイラは機能していません。エラーを修正したり、Eclipse でエラーを無視するにはどうすればよいですか?
この問題はdrools 3.06 から 4.0.7への移行で言及されましたが、どのバージョンの eclipse と drools を使用していますか?
これはクラスパスの問題に関連している可能性があります:
デバッガーを使用して、Drools
PackageBuilder
がクラスを
Thread.currentThread().getContextClassLoader();
これ
ClassLoader
にはエージェント クラスが含まれていません。システム クラス ローダーでさえ、私のクラスは含まれていません。
解決策は次のとおりです。
プレーン
PackageBuilder
とRuleBase
インスタンスを作成する代わりに、現在構成されている aPackageBuilderConfiguration
と aRuleBaseConfiguration
both でそれらを作成する必要があります。classLoader
ClassLoader classLoader = this.getClass().getClassLoader();
PackageBuilderConfiguration configuration = new PackageBuilderConfiguration();
configuration.setClassLoader(classLoader);
PackageBuilder builder = new PackageBuilder(configuration);
builder.addPackageFromDrl(source);
RuleBaseConfiguration ruleBaseConfiguration = new RuleBaseConfiguration();
ruleBaseConfiguration.setClassLoader(classLoader);
ruleBase = RuleBaseFactory.newRuleBase(ruleBaseConfiguration);
ruleBase.addPackage(builder.getPackage());