我遇到了这个问题:
package com.acme;
Class CircuitBreakerUtil {
public static boolean canAttempt(String breakerName) {
return true;
}
}
我的春天宣言
<spring:bean id="circuitBreakerUtil" class="com.acme.CircuitBreakerUtil" scope="singleton"/>
我的简短表达:
<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 ....}]
答案 0 :(得分:0)
为什么你可以在你需要的地方尝试
使用MEL表达式 #[com.acme.CircuitBreakerUtil.canAttempt(param)]
。
即使你可以在这里使用你的表达组件。
此外,您可以将其声明为全局表达式,并在任何地方重复使用。