遇到无效的@Scheduled方法'methodName':@Scheduled只能注释无参数的方法

时间:2019-09-12 17:48:17

标签: spring spring-boot java-ee spring-batch scheduled-tasks

plz我不知道wath是代码中的确切问题,如果我在代码中突然添加Scheduled注释,则会出现此错误 如果您有任何感动,请。 如果我突然在代码中添加了计划注释,则我不知道wath是代码中的确切问题 如果您有什么需要深思的话。

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
12-09-2019 18:11:54.908 [restartedMain] ERROR o.s.boot.SpringApplication.reportFailure - Application run failed
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'missionResource': Unsatisfied dependency expressed through field 'missionManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'missionImpl' defined in file [C:\Users\El Oussa\Desktop\vgas-api\vgas-manager\target\classes\ma\valueit\vgas\manager\business\impl\MissionImpl.class]: Initialization of bean failed; nested exception is java.lang.IllegalStateException: Encountered invalid @Scheduled method 'editMission': Only no-arg methods may be annotated with @Scheduled
   at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:596)
   at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:90)
    I have added @EnableScheduling in SpringBootApplication
--------------------------------------------------------

    @SpringBootApplication
@EnableScheduling
@ComponentScan("com.qaiboub.vs")
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

}
    @Service
    public class MissionImpl extends CrudManagerImpl<MissionDto, Integer, MissionEntity, MissionService, MissionConverter> implements MissionManager {

    @Autowired
    private MissionService missionService;

    @Autowired
    private MissionConverter missionConverter;
    enter code here
    @Override
    public MissionService getService() {
        return missionService;
    }

    @Override
    public MissionConverter getConverter() {
        return missionConverter;
    }


    @Scheduled(cron = "0 15 18 * * *")
    public void editMission(Integer id, MissionDto missionDto) {
        if (StringUtils.isEmpty(id)) {
            throw new MissingIdException();
        }

        if (missionDto == null) {
            throw new InvalidPayloadException();
        }

        if (!id.equals(missionDto.getId())) {
            throw new BusinessException(CommonErrorCode.TRYING_TO_EDIT_ANOTHER_ENTITY);
        }

        missionEntity = missionConverter.convertFrom(missionDto);

        missionEntity = missionService.save(missionEntity);
    }

}

1 个答案:

答案 0 :(得分:1)

删除函数arg。调度器在他们的函数中不带 arg