1

drools のバージョンを 5.x から 6.4 に移行しており、新しいパッケージへの移動などのコンパイルの問題を除いて、以前に使用していたすべてのクラスとメソッドを使用しました。

Maven で DT ファイル (xls) をビルドすると、以下の問題が発生しました。

[ERROR] ## Errors [Unable to Analyse Expression template != null:
[Error: unable to resolve method using strict-mode: com.svc.User.template()]
[Near : {... template != null ....}]

注 - ユーザー クラスは、Java Bean 標準に従っています。

また、以下のようにMaven方言を無効にしようとしました

KnowledgeBuilderConfiguration kConf = KnowledgeBuilderFactory.newKnowledgeBuilderConfiguration(null,
                    classLoader);
kConf.setProperty("drools.dialect.mvel.strict", "false");
            KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(kConf);

しかし、同じエラーが発生しました。修正を手伝ってください。よくわかりません。これは方言に関連しているか、DT ファイルを変更する必要があります。

どうもありがとう。

4

2 に答える 2

3

クラス com.svc.User の属性テンプレートのゲッターを確認してください。規約に従わなければならない

public {OBJECT_TYPE} getTemplate(){ return template; }

このタイプのエラーは、通常、この名前 (この場合は template()) を持つメソッドが見つからないことを意味します。これは通常、属性のゲッターに問題があることを意味します。

于 2016-09-02T14:46:52.817 に答える
0

私は同じエラーに遭遇しましたが、私の問題 (私が最終的に解決した) は、変数 (あなたの場合は「テンプレート」) を静的変数として宣言したことでした。そのため、get メソッドも静的でした (私は Eclipse のゲッターとセッターの自動生成を使用していました)。static 修飾子を取り除くとすぐに、私のルールは正常に機能しました。

于 2019-05-21T13:31:45.307 に答える