2013-03-20 4 views
6

JavaFX में मैं इस तरह एक webEngine के लिए लोड कार्यकर्ता को एक श्रोता संलग्न कर सकते हैं:त्रुटियों की रिपोर्ट करने के लिए JavaFx WebEngine को कैसे प्राप्त करें?

https://SomeLocalMachine.com:9443/jts/admin#action=com.ibm.team.repository.manageUsers

:

webEngine.getLoadWorker().stateProperty().addListener(
     new ChangeListener<Worker.State>() { 
     public void changed(ObservableValue ov, Worker.State oldState, Worker.State newState) {        
      System.out.println("webEngine result "+ newState.toString()); 
     } 
    }); 

लेकिन अगर मैं इस तरह के रूप में एक https पते पर एक दस्तावेज़ लोड करने का प्रयास

सब मैं कंसोल पर मुद्रित हो जाता है:

webEngine result READY 
webEngine result SCHEDULED 
webEngine result RUNNING 
webEngine result FAILED 

(फ़ायरफ़ॉक्स या क्रोम में एक ही https पता मुझे लॉगिन पृष्ठ प्राप्त करता है)

क्या कोई जानता है कि मैं JavaFx WebEngine से अधिक विस्तृत रिपोर्ट कैसे प्राप्त कर सकता हूं। मैं सिर्फ यह नहीं जानना चाहता कि यह असफल रहा - मुझे क्यों पता होना चाहिए। मैं मेरी त्रुटि SSL/प्रमाण पत्र/HTTPS संबंधित है अनुमान लगा सकते हैं, लेकिन वर्तमान में मैं अंधेरे में काफी हूँ के रूप में एसएसएल का कौन सा हिस्सा करने के लिए करने के लिए यह कारण 'असफल'

उत्तर

4

सबसे अच्छा हम कभी भी मिल गया था:

if (webEngine.getLoadWorker().getException() != null && newState == State.FAILED) { 
    exceptionMessage = ", " + webEngine.getLoadWorker().getException().toString(); 
} 

लेकिन यह मदद नहीं की।

(हमारी त्रुटि, एक लापता CookieStore के कारण हुई थी तो यह आपको मुक्त करने के लिए एक नहीं मिलता है लगता है - और एक डिफ़ॉल्ट एक सेट करने के लिए: http://docs.oracle.com/javase/7/docs/api/java/net/CookieHandler.html)

+0

आपने यह कोड कहां रखा? वेब इंजन लोड कार्यकर्ता राज्य संपत्ति परिवर्तन श्रोता में? – jewelsea

+0

हां चेंजलिस्ट में 'webEngine.getLoadWorker()। राज्यप्रॉपर्टी() में जोड़ें। लिस्टनर ( नया चेंजलिस्टर () ..... –

4

आप निम्नलिखित की कोशिश की है:

engine.getLoadWorker().exceptionProperty().addListener(new ChangeListener<Throwable>() { 
    @Override 
    public void changed(ObservableValue<? extends Throwable> ov, Throwable t, Throwable t1) { 
     System.out.println("Received exception: "+t1.getMessage()); 
    } 
}); 
13

आप com.sun.javafx.webkit.WebConsoleListener उपयोग कर सकते हैं। नकारात्मकता यह है कि यह जेआरई आंतरिक एपीआई है।

WebConsoleListener.setDefaultListener(new WebConsoleListener(){ 
    @Override 
    public void messageAdded(WebView webView, String message, int lineNumber, String sourceId) { 
     System.out.println("Console: [" + sourceId + ":" + lineNumber + "] " + message); 
    } 
}); 
संबंधित मुद्दे