我正在尝试编写用于处理邮件的DSL。我有几个结构使用下面的一个导致错误 -
来自DSL的- [后果] []关于字段{bit}的验证失败,将字段{bit2}设置为“{field_value}”= System.out.println(“Test”);
在数码单反相机中 - 关于字段2设置字段39到“181”的验证失败
奇怪的是,以下工作正常
来自DSL的- [后果] []关于字段{bit}的验证失败,将字段{bit2}设置为{field_value} = System.out.println(“Test”);
在数码单反相机中 - 关于字段2设置字段39到181的验证失败 (请注意“field_value”上删除的双引号)
我做错了吗? 。我正在使用Drools 5.4.0 Final。
谢谢!
规则编译错误:[规则名称='处理验证失败的授权事务'] defaultpkg / Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java(21:1344):on无法解析为某个类型 defaultpkg / Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java(21:1358):令牌“失败”时出现语法错误,;预期 defaultpkg / Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java(21:1366):无法解析为某种类型 defaultpkg / Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java(21:1369):重复的局部变量字段 defaultpkg / Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java(21:1375):令牌“2”上的语法错误,;预期 defaultpkg / Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java(22:1450):on无法解析为某个类型 defaultpkg / Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java(22:1453):重复的局部变量验证 defaultpkg / Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java(22:1464):令牌“失败”时出现语法错误,;预期 defaultpkg / Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java(22:1472):无法解析为某种类型 defaultpkg / Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java(22:1475):重复的局部变量字段 defaultpkg / Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java(22:1481):令牌“3”上的语法错误,;预期 defaultpkg / Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java(23:1556):on无法解析为某个类型 defaultpkg / Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java(23:1559):重复的局部变量验证 defaultpkg / Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java(23:1570):令牌“失败”时出现语法错误,;预期 defaultpkg / Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java(23:1578):无法解析为某种类型 defaultpkg / Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java(23:1581):重复的局部变量字段 defaultpkg / Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java(23:1587):令牌“4”上的语法错误,;预期
答案 0 :(得分:0)
看起来drools以递归方式应用规则! 我在DSL中输入了 [后果] []关于字段{bit}设置字段{second_bit}到“{val}”验证失败= ...
但还有另外一个像这样的人 - [结果] []将字段{bit}设置为“{field_value}”= ...
所以drools匹配第一个条目的最后一部分到第二个的RHS!感谢drools.dump.dir选项,我可以看到发生了什么!