Java Google guice injector for Servlets返回500错误

Java Google guice injector for Servlets返回500错误,java,jsp,servlets,dependency-injection,guice,Java,Jsp,Servlets,Dependency Injection,Guice,这是我的Servlet @WebServlet("/UserServlet") public class UserServlet extends HttpServlet { private static final long serialVersionUID = 1L; @Inject IUserBusiness userBusiness; protected void doGet(HttpServletRequest request, HttpServletResponse

这是我的Servlet

@WebServlet("/UserServlet")
public class UserServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
    @Inject IUserBusiness userBusiness;


protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    List<UserBean> usersList=new ArrayList<UserBean>();
    usersList=userBusiness.getAllUsers();
    usersList.size();
}

但我得到了一个500错误(servlet中userBusiness的null指针异常)


如果您使用的是Guice,为什么要设置
@WebServlet(“/UserServlet”)
?额外的注释不会造成任何伤害,但它可能会掩盖一个单独的错误配置


确保您是通过Guice绑定访问servlet的,因为如果您是通过其他配置访问servlet,那么@Inject字段将不会被设置,并且在尝试访问它们时,您将获得一个NPE。

UserServlet.java:36上的内容是什么?
public interface IUserBusiness {
    List<UserBean> getAllUsers();
}

public class UserBusiness implements IUserBusiness{

    public List<UserBean>userList;
    public UserBusiness() {
        userList=new ArrayList<UserBean>();
    }
    public List<UserBean> getAllUsers(){
        UserBean user=new UserBean();
        user.setAge(44);
        user.setEmail("fgdfg");
        user.setPassword("dfgdfgf");
        userList.add(user);
        return this.userList;
    }
}
@Override
protected com.google.inject.Injector getInjector() {
    return Guice.createInjector(
            new ServletModule() {
                @Override protected void configureServlets() {
                    serve("/index.html").with(UserServlet.class);
                }
            },
            new Configure());
}
public class Configure extends com.google.inject.AbstractModule{

    @Override
    protected void configure() {
        bind(IUserBusiness.class).to(UserBusiness.class);
    }

}
Servlet.service() for servlet [dynamic.UserServlet] in context with path [/dynamic] threw exception
java.lang.NullPointerException
    at dynamic.UserServlet.doGet(UserServlet.java:36)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:622)