下面是我的源码
package com.servlet;import com.ejb.Userinfo;
import com.ejb.Online;
import java.io.IOException;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
import com.ejb.addremoveLocal;
import com.ejb.validateLocal;
import javax.ejb.EJB;
/**
 *
 * @author Administrator
 */
public class login extends HttpServlet {
   @EJB
  private validateLocal validate;
   private addremoveLocal addremove;    /** 
     * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    protected void processRequest(HttpServletRequest request,HttpServletResponse response)
            throws ServletException,IOException{        String resultpage=null;
    String usrname =request.getParameter("userID");
    request.getSession().setAttribute("username",usrname);
    String password=request.getParameter("pwd");
    boolean flag=true;
    List usersinfo=null;
    usersinfo=validate.findAll();         for(Iterator it=usersinfo.iterator();it.hasNext()&&flag;){
    Userinfo userinfo=(Userinfo)it.next();
if(userinfo.getUsername().equals(usrname)&&userinfo.getPassword().equals(password)){
    Online online=new Online();
     online.setId(Integer.SIZE);
     online.setUsername(usrname);
     if(online!=null){
               addremove.addOnline(online);
      resultpage="/main.jsp";
 RequestDispatcher dispatcher=request.getRequestDispatcher(resultpage);
   dispatcher.forward(request,response);
        flag=false;
     }
     break;
               }
          }
  resultpage="/error.jsp";
    RequestDispatcher dispatcher=request.getRequestDispatcher(resultpage);
    dispatcher.forward(request,response);
    }
     @Override
    protected void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{
   processRequest(request,response);
    }    @Override
     protected void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{
    processRequest(request,response);
     }    @Override
     public String getServletInfo(){
     return "Short descreption";}    }     // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /** 
     * Handles the HTTP <code>GET</code> method.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
  

解决方案 »

  1.   

    老是提示addremove.addOnline(online);这一行java.lang.NullPointerException,谢谢各位大虾了啊
      

  2.   

    private addremoveLocal addremove;
    你只有定义.并没有对其赋值.所以,为null. addremove.addOnline(online);
    而你用null.addOnline(..);肯定会报空指针异常啦.你可以把这句话
    if(online!=null){
      addremove.addOnline(online);改成:if(addremove!=null){
      addremove.addOnline(online);
      

  3.   

    addremove.addOnline(参数)方法中存在没有被实力化得对象,请仔细检查下...
      

  4.   

    同意5楼的说法,不是你的参数是NULL,而是addremove对象为NULL.