Я начинаю использовать игровую среду, я хочу написать задание, которое делает определенное количество вызовов ws.
Я написал 2 класса следующим образом:
@Singleton
public class AutoGateJob {
@Inject
private ActorSystem actorSystem;
@Inject
private ExecutionContext executionContext;
@Inject
private RgsDataServiceServices rgsDataServiceServices;
@Inject
public AutoGateJob(ApplicationLifecycle lifecycle, ActorSystem system, ExecutionContext
context) {
Logger.info("### create autojob");
this.actorSystem = system;
this.executionContext = context;
this.initialize();
lifecycle.addStopHook(() -> {
Logger.info("### c'est l'heure de rentrer!!!");
this.actorSystem.shutdown();
return CompletableFuture.completedFuture(null);
});
}
private void initialize() {
this.actorSystem.scheduler().schedule(
Duration.create(0, TimeUnit.SECONDS), // initialDelay
Duration.create(5, TimeUnit.SECONDS), // interval
() -> this.runAutoGateJobTasks(),
this.executionContext
);
}
private void runAutoGateJobTasks() {
Logger.info("## Run job every 5 seconds");
rgsDataServiceServices = new RgsDataServiceServices();
rgsDataServiceServices.findAllPaymentToSendHandler()
.handle((wsResponse, throwable) -> {
Logger.info("## find all payment to send response: ", wsResponse.asJson());
List<String> paymentsList = new ArrayList<>();
paymentsList.forEach(s -> {
Logger.info("## Processing payment: ", s);
});
return CompletableFuture.completedFuture(null);
});
}
}
а также
public class AutoGateJobInitializer extends AbstractModule {
@Override
protected void configure() {
Logger.info("## Setup job on app startup!");
bind(AutoGateJob.class).asEagerSingleton();
}
}
проблема в том, что у Mys rgsDataServiceServices есть работающая инъекция WSClient, которая хорошо работает при использовании с контроллерами, но при вызове в AutoGateJob у меня есть исключение нулевого указателя ( [error] a.d.TaskInvocation - null java.lang.NullPointerException: null ). Я действительно не понимаю, что происходит, но мне нужно, чтобы моя работа вел себя таким образом.
Спасибо за помощь!