gpt4 book ai didi

java - Servlet 的 Google guice 注入(inject)器返回 500 错误

转载 作者:行者123 更新时间:2023-11-30 07:09:33 26 4
gpt4 key购买 nike

这是我的 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();
}

我有下一个接口(interface)和实现

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;
}
}

然后我像这样配置注入(inject)器

公共(public)类监听器扩展GuiceServletContextListener {

@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);
}

}

但是我收到 500 错误(servlet 中的 userBusiness 出现 nullPointer 异常)

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)

最佳答案

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

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

关于java - Servlet 的 Google guice 注入(inject)器返回 500 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39438892/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com