Java 注入石英作业中的Bean-NullPointerException

Java 注入石英作业中的Bean-NullPointerException,java,jakarta-ee,cdi,jboss-weld,Java,Jakarta Ee,Cdi,Jboss Weld,我有一个问题,在Quartz计划作业中注入CDIBean。这是作业类的代码 import javax.inject.Inject; import lombok.extern.java.Log; import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; import com.example.controller.UserController;

我有一个问题,在Quartz计划作业中注入CDIBean。这是作业类的代码

import javax.inject.Inject;

import lombok.extern.java.Log;

import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;

import com.example.controller.UserController;

@Log
public class SomethingNewScheduler implements Job {

    @Inject
    UserController userController;

    @Override
    public void execute(JobExecutionContext arg0) throws JobExecutionException {
        userController.doSomething();
    }
}
My UserController的定义如下:

import java.io.Serializable;

import javax.ejb.EJB;
import javax.enterprise.context.ApplicationScoped;

import lombok.extern.java.Log;


import de.example.dao.UserDao;

@Log
@ApplicationScoped
public class UserController implements Serializable {
    private static final long serialVersionUID = 5922763136823308273L;
    @EJB
    private UserDao userDao;

    public void example(){
        userDao.getSomething();
    }
}
当我尝试访问SomethingNewsScheduler中的userController时,我得到一个NullPointerException。在SomethingNewScheduler中实现Serializable并没有解决这个问题

我正在为我的应用程序使用Wildfly 8.2.0。在RestService中访问UserController工作得非常好


有人知道为什么它在这里不起作用吗?

SomethingNewScheduler需要是一个CDI感知的托管bean或EJB,才能进行注入。要传递对象,您需要使用quarts bean JobDataMap。你可以在网上找到很多例子。我该怎么做?我尝试了,这页上指定了什么:-我将@Statless添加到我的调度程序中,并创建了一个空构造函数。用户控制器IST仍然是NULL。您可以考虑使用替代石英。这些将与CDI等集成,非常轻松感谢Steve,EJB定时器工作得更好!