HTTP Status 500 - type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception javax.servlet.ServletException
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:516)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:423)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:226)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:397)
javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
root cause java.lang.NullPointerException
StudyCourse.DB.(DB.java:16)
StudyCourse.FirstAction.execute(FirstAction.java:30)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:226)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:397)
javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
note The full stack trace of the root cause is available in the Tomcat logs.

解决方案 »

  1.   

    控制台报错: Unhandled Exception throw :class java.lang.NullpointerException.
      

  2.   

    空指针异常
    FirstAction.execute()
    第30行对象为NULL!
      

  3.   

    这是 firstaction 的文件.用jcteator编译的时候提醒  
    javax.http.servlet does not exit
    javax.servlet.http does not exit
    这是为什么啊. 我的servlet-api.jar   struts.jar都放到classpath 里了.
    package StudyCoure;import javax.sql.DataSource;
    import java.sql.Connection;
    import javax.servlet.ServletContext;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
    import org.apache.struts.action.ActionMessage;
    import org.apache.struts.action.ActionMessages;
    import java.util.Vector;
    import org.apache.struts.action.DynaActionForm;public final class FirstAction extends Action{  
    public ActionForward execute(
    ActionMapping mapping,
    ActionForm form,
    HttpServletRequest request,  
    HttpServletResponse response) throws Exception {

        DynaActionForm courseTypeIdForm = (DynaActionForm) form;         
    Integer courseTypeId = (Integer)courseTypeIdForm.get("courseTypeId");
    System.out.println("aaassa");
        ServletContext context = servlet.getServletContext();
        System.out.println(Constants.DATASOURCE_KEY);
    DataSource dataSource = (DataSource)context.getAttribute(Constants.DATASOURCE_KEY);
            if (dataSource==null){
            System.out.println("aaaa");
            }
            
            
            DB db = new DB(dataSource);
            
    int iTypeId=0; 
    if (courseTypeId!=null){
    iTypeId= courseTypeId.intValue();
    }
    else{
    iTypeId = CourseType.GetFirstCourseType(db);
    }

            Vector courseList = new Vector();
            HttpSession session = request.getSession();
            
    // String PageForward;
    // ActionMessages errors = new ActionMessages();
            
    session.setAttribute(Constants.COURSE_TYPE_LIST_KEY,CourseType.SearchCourseType(db));

    courseList = Course.SearchCourse(db,iTypeId,"","");
    session.setAttribute(Constants.COURSE_LIST_KEY,courseList);

    db.close();
        return (mapping.findForward("toCourseMain"));
      }}
      

  4.   

    不要打印aaaa把那些对像打出来,看看哪来对像为null啊
      

  5.   

    会不会是这句的问题?你的form里面的get方法是这样的吗?
    Integer courseTypeId = (Integer)courseTypeIdForm.get("courseTypeId");
    改为
    int courseTypeId = Integer.parseInt(courseTypeIdForm.get("courseTypeId"));
    你调试一下看
      

  6.   

    servlet问题,你看看web.xml文件里有没有把这个servlet写进去。
      

  7.   

    Integer courseTypeId = (Integer)courseTypeIdForm.get("courseTypeId");
    改成
    int courseTypeId = Integer.parseInt(courseTypeIdForm.get("courseTypeId"));还有
    DataSource dataSource = (DataSource)context.getAttribute(Constants.DATASOURCE_KEY);
    貌似也不该是这么写的。
      

  8.   

    在我部署的应用下的web.xml里有下列一段,还需要再增加吗?  <servlet>
        <servlet-name>actionServlet</servlet-name>
        <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
      </servlet>  <!-- Action Servlet Mapping -->
      <servlet-mapping>
        <servlet-name>actionServlet</servlet-name>
        <url-pattern>*.do</url-pattern>
      </servlet-mapping>
      

  9.   

    lip009(深蓝忧郁)说的对;
    找到对应
    "StudyCourse.FirstAction.execute(FirstAction.java:30)"
    这一行的代码,察看对应变量的取值是否正确;Good Luck.
      

  10.   

    StudyCourse.DB.(DB.java:16)是什么看看就知道了,
    看用到了传入的哪个值
      

  11.   

    空指针异常,null的地方没处理阿
      

  12.   

    空指针错误。
    仔细查看struts配置文件/
      

  13.   

    DB db = new DB(dataSource);
    你引用了DB这个包了?我怎么没在Import里看到呢