Внедрение CDI в Quartz JobFactory регистрирует предупреждение «Нет допустимой среды EE для инъекции ..» - PullRequest
0 голосов
/ 13 ноября 2018

Я использую этот подход, чтобы иметь CDI с Quartz в Java EE:

public class CdiJobFactory implements JobFactory {

    @Inject
    private BeanManager beanManager;

    @Override
    public Job newJob(final TriggerFiredBundle bundle, final Scheduler scheduler) throws SchedulerException {
        Class<? extends Job> jobClass = bundle.getJobDetail().getJobClass();
        Set<Bean<?>> beans = beanManager.getBeans(jobClass);
        if (beans.isEmpty()) {
            throw new SchedulerException("No job instance found for job class: " + jobClass.getName());
        }
        Bean<?> bean = beanManager.getBeans(jobClass).iterator().next();
        CreationalContext<?> ctx = beanManager.createCreationalContext(bean);
        return (Job) beanManager.getReference(bean, jobClass, ctx);
    }
}

Все работает нормально, но я получаю это сообщение об ошибке в server.log для всех заданий кварца ивсе бины, которые я вставляю в них (сообщение не записывается для EJB, введенного в кварцевые задания): [Payara 4.1] [SEVERE] No valid EE environment for injection of.Задания выполняются успешно, они не выдают исключение, но меня беспокоит это сообщение об ошибке.Я пытался аннотировать задания с помощью @ApplicationScoped или @Dependent и т. Д., Но безрезультатно.Я развертываю на Payara Server 4.1.2.181 и использую Java EE 7.

...