一、线程的基本应用(thread.join())
/** * 保存等级保护定级备案申请信息 */ public void saveBash() throws Exception { String success = ""; //得到前台传入的验证码 String code = this.getRequest().getParameter("code"); //得到session存入的验证码 String yanZhenMa = this.getRequest().getSession().getAttribute(com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY).toString(); if(!code.equalsIgnoreCase(yanZhenMa)){ renderText("输入的验证码有误"); }else{ //得到请求唯一编号 onlyCode = DummyServer.createOnlyCode("BJBH"); //用于生成业务流水号的xml文件 String xmlFile = DummyServer.createSblshReqXml(onlyCode,"30000031900754268913440300"); //向uplond目录写文件 DummyServer.createReqXmlFile(onlyCode,xmlFile); //线程 Thread thread = new Thread(){ public void run(){ try{ String path = (new ReadXml().getClass().getResource("/").toString()+"data_download/").replace("file:/", "").replace("%20", " "); String fileName = onlyCode+".xml"; File file = new File(path+fileName); if(file.exists()){ //取申办流水号 sblsh = Base.readXml(file); file.delete(); return; } Thread.sleep(200); run(); }catch(Exception e){ e.printStackTrace(); } } }; //开启线程 thread.start(); //线程执行完成后(即file.exists()为ture时,链接下面的代码) thread.join(); //添加受理编号 entity.setSlbh(sblsh); //统一平台列名、列值集合集合 Map<String,String> map = fhMap(entity); //受理状态对象 WjBajv wjBajv = new WjBajv(); wjBajv.setSlbh(sblsh); //保存等级保护定级备案申请信息、向统一平台插入数据 success = manager.saveWjBash(entity,map,wjBajv); if(("1".equals(success))){ renderText("备案成功,受理编号为:"+sblsh); }else{ renderText("服务器出现异常,请重新备案!"); } } }