gpt4 book ai didi

java - 尝试在 .jsp 页面上的数据库表中列出员工时,employeesRepo 为 null

转载 作者:行者123 更新时间:2023-12-01 15:05:12 24 4
gpt4 key购买 nike

我的小项目使用一个数据库表,其中包含有关员工的数据(姓名、电话、电子邮件)。它通过网络浏览器提供员工列表的前端管理(插入新闻员工、编辑当前员工、删除现有员工)。

每当我从 Eclipse 在 Tomcat 服务器上运行我的项目(以显示所有员工的列表)时,我都会收到以下错误:

java.lang.NullPointerException com.myproject.crud.EmployeesListServlet.doGet(EmployeesListServlet.java:24) javax.servlet.http.HttpServlet.service(HttpServlet.java:621) javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

第 24 行:request.setAttribute("employeess", employeesRepo.listEmployeess());

EmployeesListServlet

package com.myproject.crud;

import java.io.IOException;

import javax.inject.Inject;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@SuppressWarnings("serial")
@WebServlet("/employees/")
public class EmployeesListServlet extends HttpServlet {

@Inject @JDBC
private EmployeesRepository employeesRepo;

public EmployeesListServlet() {
super();
}

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setAttribute("employeess", employeesRepo.listEmployeess());
getServletContext().getRequestDispatcher("/WEB-INF/pages/employees-listing.jsp").forward(request, response);
}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}

}

最佳答案

您的previous question确认您正在尝试关注 this tutorial 。然而,它的目标是 Caucho Resin ,一个成熟的 Java EE 应用服务器,它支持所有开箱即用的 Java EE 功能,无需添加更多 JAR。

但是,您正在使用 Tomcat。 Tomcat 是一个准系统 JSP/Servlet 容器,它不支持所有其他开箱即用的 Java EE 功能。它仅支持JSPServlets@Inject 是 CDI 的一部分,首先无法在 Java servlet 代码中导入。您对其进行编译只能意味着您下载了一些包含 javax.inject.Inject 的 JAR 并将其放入运行时类路径中。

这不是在 Tomcat 中安装 CDI 的方法。你需要做更多的工作。另请参阅 Weld (the CDI reference implementation) documentation on Tomcat .

<小时/>

不过,我建议停止阅读该教程,它并不是对 Java EE 的很好的介绍(@JDBC 注释本身也有点“wtf?”)并且寻找另一本教程,或者更好的是一本真正的书。如果你想认真学习Java EE,那么我还建议用真正的Java EE应用服务器来替换Tomcat,例如TomEE , Glassfish , JBoss AS等等。它们都附带了开箱即用的 CDI(以及比 JDBC 好得多的 JPA 和 EJB)。

关于java - 尝试在 .jsp 页面上的数据库表中列出员工时,employeesRepo 为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13056710/

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