Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java servlet-空指针异常_Java_Exception_Servlets_Pointers_Null - Fatal编程技术网

Java servlet-空指针异常

Java servlet-空指针异常,java,exception,servlets,pointers,null,Java,Exception,Servlets,Pointers,Null,我在servlet中有以下代码: try { EntityManagerFactory emFactory = Persistence.createEntityManagerFactory("Flights_AssignmentPU"); EntityManager em = emFactory.createEntityManager(); Query query = em.createNamedQuery("Passengers.findByPassportNum")

我在servlet中有以下代码:

try
{
    EntityManagerFactory emFactory = Persistence.createEntityManagerFactory("Flights_AssignmentPU");
    EntityManager em = emFactory.createEntityManager();

    Query query = em.createNamedQuery("Passengers.findByPassportNum");
    query.setParameter("passportNum", passport);
    List<Passengers> result = query.getResultList();            
    em.close();

    for(int i = 0; i < result.size(); i++)
    {
        name = result.get(i).getName();
        surname = result.get(i).getSurname();
        email_address = result.get(i).getEmail();
    }
}
catch(Exception e)
{
    response.sendRedirect("ErrorPage.html");
}

if(email_address.isEmpty() == false)
{
      //Send email using email address
}
出于某种原因,当用户没有电子邮件时,这一行告诉我刚才描述的错误。我怎样才能解决这个问题

编辑

getEmail方法是在创建实体类时自动生成的(我使用了持久性)

代码如下:

public String getEmail() {
    return email;
}

我认为问题在于这一行:

if(email_address.isEmpty() == false)
{
      //Send email using email address
}
当数据库的电子邮件为空时,您可能会得到
null
响应。您正在对null引用调用
isEmpty()
操作,这将导致
NullPointerException

在调用
isEmpty()之前执行
null
检查

例如:

if(email_address != null && email_address.isEmpty() == false)
    {
          //Send email using email address
    }

我认为问题在于这一行:

if(email_address.isEmpty() == false)
{
      //Send email using email address
}
当数据库的电子邮件为空时,您可能会得到
null
响应。您正在对null引用调用
isEmpty()
操作,这将导致
NullPointerException

在调用
isEmpty()之前执行
null
检查

例如:

if(email_address != null && email_address.isEmpty() == false)
    {
          //Send email using email address
    }

问题在于
乘客。getEmail
您没有包括的源代码。向我们展示完整的堆栈跟踪和您的实体类。您的意思是NPE堆栈跟踪中的第一行指向您“肯定要责备”的特定行。但根据目前发布的代码逻辑,这似乎是不可能的。你能修改一下你的暗示和假设吗?顺便说一句,
sendRedirect()
并没有神奇地从该方法返回……我犯了一个错误。这是南巴里确定的路线。我假设这是那条线,因为当我把它注释掉并做了一些测试时,问题根本不存在。啊,没关系,Nambari回答的评论证实了你指出这条线是完全错误的。请学习如何解释stacktraces。问题在于
乘客。getEmail
您尚未包含的源代码。向我们展示完整的堆栈跟踪和您的实体类。您的意思是NPE stacktrace中的第一行指向您“肯定要责备”的特定行。但根据目前发布的代码逻辑,这似乎是不可能的。你能修改一下你的暗示和假设吗?顺便说一句,
sendRedirect()
并没有神奇地从该方法返回……我犯了一个错误。这是南巴里确定的路线。我假设这是那条线,因为当我把它注释掉并做了一些测试时,问题根本不存在。啊,没关系,Nambari回答的评论证实了你指出这条线是完全错误的。“请学习如何解释这些痕迹。”马修:很高兴这有帮助。“祝你好运!”马修:很高兴这有帮助。祝你好运