本人用SHH+AJAX做了一个联动下拉列表,但是只能获取8次xml,第八次以后就取不到了,MyEclipe不报任何错误,而且tomcat的访问速度慢的可怕,几乎没有,这是怎么回事?
不要说是页面有问题,因为在八次以前我能正常执行插入操作,大侠们,快帮帮我!
这是Action里的代码public ActionForward getCityByProv(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response) {
        try{            response.setContentType("text/xml;charset=UTF-8");
            response.setHeader("Cache-Control", "no-cache");
            response.setDateHeader( "Expires ",   0); 
            response.setHeader( "Pragma ","no-cache ");
            StringBuffer sb = new StringBuffer("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n");
            sb.append("<members>");  
            PrintWriter out = response.getWriter();
            String provID = request.getParameter("provID"); 
            list = this.pdao.getCityByPID(provID); 
            it = list.iterator();
            while(it.hasNext()){
                City city = (City)it.next();
                sb.append("<member><id>"+city.getCityId()+"</id><name>"+city.getCityName()+"</name></member>");
            }
            
            sb.append("</members>");
            out.write(sb.toString());
            //System.out.println(sb);
            out.flush();
            out.close();
            return null;
        }catch(Exception e){
            e.printStackTrace();
            request.setAttribute("error", "获取城市列表数据失败");
            return mapping.findForward("fail");
        }
    }
我用断点调试,每次程序终止前执行的最后一条语句总是获取list的那一句,无论我把它放在哪里,找了好几天,都没有找到究竟是哪里错了,真是郁闷死了

解决方案 »

  1.   

    找this.pdao.getCityByPID(provID);这里面的问题看看,上面的代码看不出问题。
      

  2.   

    搞不好是你out.close()之前抛出了异常,没有关闭到。
      

  3.   

    代码是没有问题的,因为在联动下拉框能取出值的时候是可以执行插入操作的,但在xml向后台提取过八次数据以后,就会出现程序终止的现象,而且每次都是在取完list以后,list是有值的
      

  4.   

    如果是out.close()抛出了异常,为什么之前还能执行插入操作呢?
      

  5.   

    5楼的说的太对了,因为我查询list的方法是自己写的,所以没有做释放资源,我现在改了以下,OK啊
    ~~~~~散粉~~~~~~~~~~~