2014-12-26 4 views
0

WebEngine을 헤드리스 브라우저로 사용하려고합니다. 다음은 개념 증명입니다. the example in the official Java documentation과 유사합니다.JavaFX의 WebEngine이 실행 상태에서 멈춤.

import javafx.scene.web.*; 
import javafx.application.*; 
import javafx.stage.*; 
import javafx.concurrent.Worker.*; 
import javafx.beans.value.*; 

public class WebEngineTest extends Application { 
    public void start(Stage s) { 
     WebEngine we = new WebEngine(); 

     //Print state changes as they happen; 
     //Should go READY -> SCHEDULED -> RUNNING -> SUCCEEDED 
     we.getLoadWorker().stateProperty().addListener(
       new ChangeListener<State>() { 
        public void changed(ObservableValue ov, State oldState, State newState) { 
         System.out.println(oldState + " -> " + newState); 
        } 
       }); 

     //Hit some website 
     we.load("http://javafx.com"); 
    } 

    public static void main(String[] args) { 
     launch(args); 
    } 
} 

출력 :

READY -> SCHEDULED 
SCHEDULED -> RUNNING 

치면 결코 극복 성공도 그 문제에 대한 모든 오류 상태. 예상 동작 : SUCCEEDED 상태 또는 일부 오류 상태로 작업을 종료해야합니다.

+0

이것은 http://stackoverflow.com/questions/19298740/javafx-webengine-stuck-in-running-state와 밀접하게 관련됩니다. 내 생각 엔 근본적인 원인이 같을 수도 있습니다. –

+0

기대하는 행동 (이 경우에는 SUCCEEDED가 인쇄되어야 함)을 명시 적으로 말하면 도움을 얻을 가능성이 더 큽니다. 참을성없는 독자가 _off-topic -> 디버깅 도움말을 찾아야하는 질문으로 닫을 수 있습니다 ... _ –

+0

편집을했습니다. 제안 해 주셔서 감사합니다. –

답변

1

같은 문제가 있었는데, 링크를 통해 의견을 나눌 수있었습니다. 시작 메소드 밖에서 웹 엔진을 선언하십시오. 그렇지 않으면 GC가 처리합니다.