【发布时间】:2017-03-10 13:08:06
【问题描述】:
我对此有疑问:
package com.acme;
Class CircuitBreakerUtil {
public static boolean canAttempt(String breakerName) {
return true;
}
}
我的春天宣言
<spring:bean id="circuitBreakerUtil" class="com.acme.CircuitBreakerUtil" scope="singleton"/>
我的 mvel 表达式:
<choice doc:name="ApiCircuitBreakerName Is Up?">
<when expression="#[app.registry.circuitBreakerUtil.canAttempt('ApiCircuitBreakerName')]">
<flow-ref name="CircuitBreakerFlow" doc:name="CircuitBreakerFlow"/>
<logger message="Passed CircuitBreakerFlow" level="INFO" doc:name="Logger"/>
</when>
<otherwise>
<flow-ref name="EmailTechnicalSupportFlow" doc:name="EmailTechnicalSupportFlow"/>
<flow-ref name="fallbackFlow" doc:name="fallbackFlow"/>
<logger message="Passed FallbackFlow" level="INFO" doc:name="Logger"/>
</otherwise>
</choice>
并收到此错误:
Caused by: [Error: unable to resolve method: com.acme.CircuitBreakerUtil.canAttempt(java.lang.String) [arglength=1]]
[Near : {... app.registry.circuitBreakerUti ....}]
【问题讨论】:
-
Class CircuitBreakerUtil是错字还是只是为了简化示例?当我创建一个没有定义访问修饰符的类时,例如:class CircuitBreakerUtil,它会引入错误。如果设置了访问修饰符public class CircuitBreakerUtil,它可以正常工作。 -
感谢您的帮助。我发现当我在我的方法前面加上“is”以返回一个布尔值时,它起作用了。