私は関数の引数として渡されるStringの形式のルールを持っていますが、これはどのファイルにも格納されていません。私がこれまで読んだことから、APIが非常に異なっていると推測している6以前のバージョンでは、これに対する多くの解決策があります。Droolsの文字列からルールをロードする方法6.5
KieFileSystem kfs = kService.newKieFileSystem();
Resource drlResource = ResourceFactory.newByteArrayResource(rules.getBytes());
drlResource.setResourceType(ResourceType.DRL);
kfs.write(drlResource);
KieBuilder builder = kService.newKieBuilder(kfs).buildAll();
しかし、私は実行したときに、これはというエラーを投げている:
java.lang.RuntimeException: Resource does not have neither a source nor a target path. Impossible to add it to the bundle. Please set either the source or target name of the resource before adding it.ByteArrayResource[bytes=[105, 109, 112, 111, 114, 116, 32, 106, 97, 118, ...], encoding=null]
at org.drools.compiler.kie.builder.impl.KieFileSystemImpl.write(KieFileSystemImpl.java:95)
しかし、これはこれまでのところ私のソリューションです
を(彼らは6.5で廃止されナレッジベースを、使用することをお勧め)ここにソースファイルがありません。どのようにしてStringをルールリソースに変換できますか?
私はDrools 6.5.0.Finalを使用しています。
私はこれを見つけることができませんでした。 'kfs.write()'はその場所に一時ファイルを作成しますか?どのように機能するのですか? – ar7
"src/main/rules/abc.drl"(任意のユーザ定義パス)を使用している場合は、正しい構文ですか? "src/main/resources/simple.drl"の代わりにmavenを使用していませんか?私の場合、ルールを実行していないにもかかわらず、何のエラーも投げていません。私は問題にこだわっている、助けてください。 –
@NamrataChoudharyコメントは新しい質問をするためのものではありません。あなた自身の質問にルールとJavaコードを表示する。 – laune