我創建了一個BPMN協作模型,其中包含一個類型爲Javascript的腳本任務。然後,我實例化一個流程實例與過程變量,像這樣:在Javascript中修改ArrayList導致Camunda中的序列化失敗
Variable name: arr
Object type name: java.util.ArrayList
Serialization Data Format: application/x-java-serialized-object
Value: [{ "id": 10 }]
然後我通過下面的代碼腳本任務:
var arr = execution.getVariable("arr");
execution.setVariable("arr2", arr);
它成功運行。然後我修改腳本任務是這樣的:
var arr = execution.getVariable("arr");
arr.add({ "id" : 2 });
execution.setVariable("arr2", arr);
並重新部署,重新實例化;並驚訝它導致了一個錯誤:
Cannot submit task form xxx: Cannot serialize object in variable 'arr': jdk.nashorn.internal.scripts.JO4
有人可以告訴我,我做錯了什麼?
[更新]
我只是發現一些新的東西,如果我修改的ArrayList是這樣的:
var arr = execution.getVariable("arr");
arr.add(2);
execution.setVariable("arr2", arr);
它工作得很好!而修改後的值是:
[{ "id": 10 }, 2]
這意味着setVariable
有問題序列化修改後的列表。那麼我應該如何序列化它呢?
我不知道,如果存在一個或沒有,但我認爲一個文檔解釋這些將會非常有幫助。謝謝。 – Mehran