2011-05-14 12 views
0

웹 사이트에서 이미지를 다운로드하려고합니다 ... 로컬에서 훌륭하게 작동하지만 애플릿이 웹 브라우저를 통해 실행되면 .. 잘립니다. 예를 들어, 이미지는 훌륭하지만 약 460-500 ... 이미지 다운로드가 갑자기 중지됩니다. 왜Java - url 시간 초과

   for (int i = 0; i < NUM_TILES; i++) { 

         try { 
       System.out.println("Downloading tile " + i + " of "+NUM_TILES); 
       File outputFileLocation = new File (System.getenv("APPDATA") + "\\.mystik\\tiles\\t"+i+".png");    
       String imgURL="line_tile/t"+i+".png"; 
       URL urlItem = new URL(imgURL); 
       Image imageBR = ImageIO.read(urlItem); 
       BufferedImage cpimg=(BufferedImage) imageBR; 
       ImageIO.write(cpimg, "png", outputFileLocation); 
         } catch (MalformedURLException e1) { 
          e1.printStackTrace(); 
         } catch (IOException ex) { 
          ex.printStackTrace(); 
         } 
       } 
       System.out.println("Tiles downloaded!"); 

을 절단 : 여기

내가 사용하고 무엇입니까?

답변

0

왜 차단됩니까?

말하기 어렵습니다. 웹 브라우저에서 Java 콘솔을 확인 했습니까? 예외 스택 추적을 받고 있습니까?

하나의 가능성은 브라우저가 애플릿이 너무 오래 걸렸다 고 결정한 것이지만 ... 나는 단지 추측하고 있습니다.

+0

아마 스티븐이 맞을 것 같아요. 그리고 보통 치료법은 백그라운드에서 작업자 스레드에서 다운로드 (또는 실제로 "잠재적으로 장기 실행 프로세스")를 수행하여 EDT가 브라우저 ... 그래서 그것은 "죽었다"라는 가정하에 애플릿을 죽이지는 않을 것입니다. 왜냐하면 그것은 타임 아웃 한도 내에서 "응답하지 않기"때문입니다. – corlettk

+0

예, 콘솔을 점검했습니다. 그것은 무작위로 약 400 후 중지하고 벌금을로드합니다. 누락 된 타일은 흰색으로 표시됩니다. – nn2

+0

타일의로드가 시작되기 전에 말하는 것은 Thread.sleep (10000)입니까? – nn2