End event threw exception
结束事件甩出异常...系统问题?`

解决方案 »

  1.   

    import java.util.Hashtable;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.UnavailableException;
    import java.io.InputStream;
    import java.io.BufferedInputStream;
    import org.apache.commons.digester.Digester;public final class UserDatabaseServlet extends HttpServlet {    private Hashtable database=null;    private int debug=0;    private String pathname="WEB-INF/userdatabase.xml";    //Initialize global variables
        public void init() throws ServletException {        String value;
            value=getServletConfig().getInitParameter("debug");
            try{
                debug=Integer.parseInt(value);
            }catch(Throwable t){
                debug=0;
            }
            if(debug>=1)
                log("Initializing database servlet");
                value=getServletConfig().getInitParameter("pathname");
                if(value!=null)
                    pathname=value;
            try{
                load();
                getServletContext().setAttribute(Constants.DATABASE_KEY,database);
            }catch(Exception e){
                log("Database load exception",e);
                throw new UnavailableException("Cannot load database from'"+pathname+"'"+e.getMessage());
            }
        }   private synchronized void load() throws Exception{
           database=new Hashtable();
           if(debug>1) log("Loading database from'"+pathname+"'");
           InputStream is=getServletContext().getResourceAsStream(pathname);
           if(is==null){
               log("No such resource available - loading empty database");
               return;
           }
           BufferedInputStream bis=new BufferedInputStream(is);
           Digester digester=new Digester();
           digester.push(this);
           digester.setDebug(debug);//这句系统提示说 是不建议使用的方法 其他方法用哪个?
           digester.setValidating(false);
           digester.addObjectCreate("database/user","addressbook.UserBean");
           digester.addSetProperties("database/user");
           digester.addSetNext("database/user","addUser");
           digester.parse(bis);
           bis.close();
       }    //Clean up resources
        public void destroy() {
            getServletContext().removeAttribute(Constants.DATABASE_KEY);
        }    public int getDebug() {
            return debug;
        }    public void addUser(UserBean user){
            database.put(user.getUsername(),user);
        }
    }
    是这个servlet出的问题 我在一个jsp里调用一个application范围的 名称为database的对象 调不到database这个对象是在这个servlet里放进去的
    getServletContext().setAttribute(Constants.DATABASE_KEY,database);就这句
    我觉得是这个servlet的load方法有问题 各位帮忙看看