KIE Workbenchバージョン6.5.0とKIE実行サーバー6.5.0で、同じローカルのWildfly 10それは正常に動作しています。 私は、ステートレスKieSessionで実行されている単純なルールを持っていますが、プロセスはありません。ルールが基本情報を検証し、発生した検証の情報をグローバル変数に追加することを期待しています。私がテストしている例では、動作しているかどうかを確認するためにグローバル変数を変更するだけですが、何らかの理由でサービスから結果が得られません。ServiceResponse結果は常にnullです(JAXB、KIE WorkbenchおよびKIE Server 6.5.0)
これは私が送っJAXB要求である:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<batch-execution lookup="kieSessionStateless">
<insert disconnected="false" entry-point="DEFAULT" return-object="false" out-identifier="myorganization.myproject.bom.MyObject">
<object xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="myObject">
<myDescription>description</myDescription>
<myID>0</myID>
</object>
</insert>
<set-global out-identifier="globalList" identifier="globalList">
<object xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="jaxbListWrapper">
<type>LIST</type>
</object>
</set-global>
<get-objects out-identifier="globalList"/>
<fire-all-rules max="-1"/>
</batch-execution>
実行されたルールは非常に簡単です:
rule "MY FIRST RULE"
when
myorganization.myproject.bom.MyObject(myID == 0)
then
myorganization.myproject.bom.GlobalResponses globalResponses = new myorganization.myproject.bom.GlobalResponses();
globalResponses.setRuleName("MY FIRST RULE");
globalResponses.setRuleResponse("MY ID IS 0");
globalList.add(globalResponses);
System.out.println("MY ID IS 0");
end
そしてWildflyコンソールで、私は(追加情報なしで印刷された行を参照してくださいエラーのスタックトレースのように)、私はすべてがうまくいきます:
13:04:36,315 INFO [stdout] (default task-39) MY ID IS 0
しかし、私はいつも同じ応答を得る:それは、 "プロセス"が正しく終了していることを示しているので(最初の視点であると思われる)、結果には何かがあることを期待しています(空のxml応答、 ...):
System.out.println("Message: "+response.getMsg());
System.out.println("Result: "+response.getResult());
System.out.println("Type: "+response.getType());
Message: Container KieContainer successfully called.
Result: null
Type: SUCCESS
Response: ServiceResponse[SUCCESS, msg='Container KieContainer successfully called.']
クライアントがKieServicesClientと呼ばれる:
KieServicesConfiguration config = KieServicesFactory.
newRestConfiguration(urlKieServer,
name,
password);
config.setMarshallingFormat(MarshallingFormat.JAXB);
KieServicesClient client = KieServicesFactory.newKieServicesClient(config);
JAXBContext jaxbContext = DroolsJaxbHelperProviderImpl.createDroolsJaxbContext(classNames, null);
Marshaller marshaller = jaxbContext.createMarshaller();
StringWriter xml = new StringWriter();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
marshaller.marshal(command, System.out);
marshaller.marshal(command, xml);
ServiceResponse<String> response = client.executeCommands("instances/"+containerName, xml.toString());
私が何かをしないのですが、私は本当に何を知りません。
すべての関連プロジェクトはGitHubです。 2つ以上のリンクを投稿することはできないので、コメントに直接リンクを追加します。
この質問は上にもある:私はライフサイクルを完了し、有効な要求を送信し、有効な回答を得ることができた Drools User group
GitHubのWorkbenchプロジェクト:https://github.com/eggsandbutter/kieworkbench // GitHubのサービスプロジェクト:https://github.com/eggsandbutter/kieservices // GitHubのプロジェクトテスト:https:// github。 com/eggsandbutter/kietesting //このエラーをテストするには、TestStateless.testJaxBというテストを実行します – Ruurd
私が遭遇する問題は、WorkbenchとKie実行サーバーを使用することです。私が単純なカスタムJavaアーキテクチャーを使用する場合、私はこの問題を何の問題もなく解決することができます。 – Ruurd