template.setRetryPolicy(policy)抛出语法错误

时间:2017-06-23 20:22:14

标签: java spring-batch spring-retry

在我的应用程序中,我正在调用Web服务。所以我想实现Spring Retry机制,使处理更加健壮,不易出现故障。这是我第一次使用Spring Retry

我创建了一个Application服务类,我在其中声明RetryTemplate并设置RetryPolicy。

但是它抛出了语法错误

"Multiple markers at this line
- Syntax error, insert "Identifier (" to complete MethodHeaderName
- Syntax error on token ".", @ expected after this token
- Syntax error, insert ")" to complete MethodDeclaration" 

即使我使用ctrl + space,它也没有显示setRetryPolicy()方法。

以下是我的课程:

import java.util.Collections;

import org.springframework.retry.policy.SimpleRetryPolicy;

import org.springframework.retry.support.RetryTemplate;

public class ApplicationServiceRetry {

    SimpleRetryPolicy policy = new SimpleRetryPolicy(5,Collections
            .<Class<? extends Throwable>, Boolean> singletonMap(Exception.class, true));
    RetryTemplate template = new RetryTemplate();
    template.setRetryPolicy(policy);  //it's throwing error here

}

我指的是http://docs.spring.io/spring-batch/reference/html/retry.html。 我在这里使用Spring-retry 1.1.5.RELEASE。

1 个答案:

答案 0 :(得分:0)

...

template.setRetryPolicy(policy);

你不能在一个类中放置任意代码 - 它必须在方法或初始化块中......

public class ApplicationServiceRetry {

    SimpleRetryPolicy policy = new SimpleRetryPolicy(5,
            Collections.<Class<? extends Throwable>, Boolean> singletonMap(Exception.class, true));

    RetryTemplate template = new RetryTemplate();

    {
        template.setRetryPolicy(policy);
    }

}