在 IBM ODM 中使用静态域时的 ClassCastException 字符串与枚举

ClassCastException String vs Enum when using Static Domain in IBM ODM

我按照教程here创建了一个静态枚举

对于域值 EXAMPLE,我会将其描述为 'Example' 并手动将 Getter(在 ARL 中)定义为 return“示例”; 如教程中所述。

然后我定义一个 input/output 变量 myDomainExample 并尝试通过 REST API.

测试它

如果我写一个虚拟规则,例如:

then
   set 'my domain example' to Example; 

我得到这个 json 结果:

{
   "__DecisionID__": "144805689948397501147221553",
  "myDomainExample ": "Example"
 }

如果我编写以下虚拟规则:

 if 
    'my domain example' is Example 
 then
    set 'my domain example' to Example; 

然后我输入以下 json 负载:

{
  "__DecisionID__": "144805689948397501147221553",
  "myDomainExample ": "Example"
 }

我收到此错误消息:

java.lang.ClassCastException: java.lang.String incompatible with java.lang.Enum

有人知道是什么原因造成的吗? 我也试过用大写字母也没用。

我也可以为这个域写一个 Java class,但我不想写。

我发现了问题,我在定义这个(对象和枚举)时错误地使用了 2 个超类。

仅使用一个(对象,如链接教程中所定义)解决了问题