WebBrowser jdic

Status
Nicht offen für weitere Antworten.

PollerJava

Top Contributor
Hallo,


Ich habe in meiner Applikation einen WebBrowser (https://jdic.dev.java.net/) und der funktioniert auch sehr gut nur bin ich jetzt dabei, meine Applikation in ein Webstart- Programm umzuwandeln. Starte ich mein Programm über Webstart, funktioniert der Browser nicht mehr (es wird nur das JPanel angezeigt, wo der WebBrowser drauf ist),
Ich hab die jar-Datei jdic.jar eingebunden ins Webstart (und auch signiert)


Hat jemand eine Idee, was ich machen kann,

Code:
 try {
                    webBrowser.setURL(new URL("http://www.google.at"));       
                    } 
                catch (MalformedURLException e) 
                    {
                    e.printStackTrace();
                    }
 

PollerJava

Top Contributor
Hallo nochmal,

hab wieder mein klassisches Problem, wenn ich die Applikation mit Webstart starte, dann findet er IeEmbed.exe nicht, welche aber zum Starten des Browsers notwendig ist,
Weiß jemand, wo ich diese Datei hingeben muss, damit mein Webstart diese exe-Datei findet?
Wenn ich meine Applikation lokal starte (also die jar-Datei), dann muss ich unter dem Ordner dist einen Ordner lib erzeugen und dorthin geben ich dann jdic.jar und eben IeEmbed.exe -> dann funktioniert mein Webbrowser, ansonsten bekomme ich folgende Fehlermeldung:

Code:
Can't execute the native embedded browser. Error message: Cannot run programm 
"C:\SimpleBrowser\dist\lib\IeEmbed.exe": CreateProcess error=2, Das System kann die angegebene Datei nicht finden

Aber ich weiß eben nicht, wo ich die IeEmbed.exe beim Webstart hintun soll.

Vielen Dank für Eure Antworten,

lg
 

thE_29

Top Contributor
Der JDIC ist halt kein richtiger Browser!

Der nutzt IE oder FF und Co! Und warum sollte so eine App als WebApp sinnvoll sein? Irgendwie musste ich mir das ja auch mal runterladen ==> ich hab sowieso nen Browser ;)
 
T

tuxedo

Gast
@PollerJava

Sag mal: Kannst du 1 und 1 nicht zusammen zählen? Das ist doch mehr oder weniger analog zu deinem Problem mit der XML-File in der du deine Konfig speicherst ...
 

PollerJava

Top Contributor
alex0801 hat gesagt.:
Das ist doch mehr oder weniger analog zu deinem Problem mit der XML-File in der du deine Konfig speicherst ...


Ja schön wärs, aber die Konfig- datei hol ich mir so:

Code:
states = readStates(cl.getResource("Konfiguration/KonfigComponents.xml").toString());

und beim WebBrowser muss ich mir die exe- Datei ja nirgends holen -> das Laden der IeEmbed.exe steht nirgends im Code, das wird irgendwie anders geladen und deshalb mein Problem,

lg
 
T

tuxedo

Gast
Naja, die .EXE wird halt von der Lib benutzt. Dass du die .EXE in deinem Code wie die XML laden sollst hat ja auch niemand geschrieben. Dennoch:

Die EXE solltest du behandeln wie eine Library die vllt. noch DLLs benutzt. Ergo sind wir nach wie vor bei ein und demselben Problem. Nämlich dem Fakt dass die EXE vom Server runtergeladen werden muss und dann im korrekten Pfad zu finden sein muss.

- Alex
 
T

tuxedo

Gast
Und wieder einmal könnt ich ne symbolische, virtuelle Ohrfeige verteilen.

Bist du denn noch nicht auf die Idee gekommen mal google mit "jdic webstart" zu füttern?

Denn da landet man unumgänglich bei der Doku zu jdic, die ausführlich beschreibt wie man das ganze mit Webstart hinkriegt.

*kopfschüttel* RTFM
 

PollerJava

Top Contributor
Ja, ich hab mir das auch schon durchgelesen, in jdic_native.jar eben die *.dll und die *.exe rein, dann in der jnlp- Datei so angeben:

Code:
<resources locale="" os="Windows">
    <nativelib download="eager" href="dist/lib/jdic_native.jar" version=""/>
  </resources>

und dann solls funktionieren, aber das tut es eben nicht und deshalb stehe ich jetzt an, ich hab keine Ahnug wiese.
Hab mir auch schon das Beispiel https://jdic.dev.java.net/files/documents/880/62106/web_start_example.zip angesehen, das aber leider auch nicht funktioniert,

Vielleicht hat ja jemand noch einen Tipp für mich,
Wäre euch sehr dankbar,

lg
 
T

tuxedo

Gast
So langsam aber sicher zweifle ich an dir... Hast du die Seite mal nach unten gescrollt? Nach etwa 50% des Scrollbalkens landest du nämlich bei der Beschreibung für Webstart ...

Zwischenfrage: Kriegst du eigtl Geld für das was du da programmierst?
 
T

tuxedo

Gast
Von Störung ist keine Rede.

Eher von "Ungeduld" oder "Ich kann google nicht bedienen" oder "Wieso zum teufel ist die Seite zu lang, ich will nicht so weit nach unten scrollen und schauen ob vielleicht da etwas zu webstart steht, ich frag lieber im Forum."

- Alex
 

PollerJava

Top Contributor
Hallo nochmal,

ich hab jetzt alles so gemacht wie in der Doku, bekomme aber eine Fehlermeldung (kann diese lesen, hab auch in google nachgesehen aber kann nichts anfangen mit ihr)



Code:
java.lang.reflect.InvocationTargetException
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at com.sun.javaws.Launcher.executeApplication(Unknown Source)
	at com.sun.javaws.Launcher.executeMainClass(Unknown Source)
	at com.sun.javaws.Launcher.doLaunchApp(Unknown Source)
	at com.sun.javaws.Launcher.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ExceptionInInitializerError
	at org.jdesktop.jdic.browser.MsgClient.<init>(Unknown Source)
	at org.jdesktop.jdic.browser.NativeEventThread.<init>(Unknown Source)
	at org.jdesktop.jdic.browser.WebBrowser.<clinit>(Unknown Source)
	at net.ppos.component.MyBrowser.generateBrowser(MyBrowser.java:42)
	at netppos.pack.Control.<init>(Control.java:61)
	at net.ppos.pack.MainFrame.setLoginPfad(MainFrame.java:22)
	at net.ppos.pack.MainFrame.<init>(MainFrame.java:17)
	at net.ppos.pack.MainFrame.main(MainFrame.java:27)
	... 9 more
Caused by: java.security.AccessControlException: access denied (java.lang.RuntimePermission loadLibrary.jdic)
	at java.security.AccessControlContext.checkPermission(Unknown Source)
	at java.security.AccessController.checkPermission(Unknown Source)
	at java.lang.SecurityManager.checkPermission(Unknown Source)
	at java.lang.SecurityManager.checkLink(Unknown Source)
	at java.lang.Runtime.loadLibrary0(Unknown Source)
	at java.lang.System.loadLibrary(Unknown Source)
	at org.jdesktop.jdic.browser.internal.WebBrowserUtil.<clinit>(Unknown Source)
	... 17 more
 

thE_29

Top Contributor
Du musst dein WebStart Dingens signieren lassen! Such mal nach Applet signieren oder jarsigner!
 

thE_29

Top Contributor
Du musst auch das jar file mit den lib signieren lassen!

Einfach alles und jedes jar File was bei dir vor kommt (in der jnlp Datei) muss mit dem GLEICHEN Zertifikat signiert sein!
 

HoaX

Top Contributor
ich würde ehr behaupten dass er im jnlp kein all-permissions tag hat. fehlende signatur sollte schon beim laden angemotzt werden
 
G

Guest

Gast
Ja das hab ich aber gemacht, ich hab alles (jede jar) signiert und hab auch <all-permission> in meiner jnlp,
keine Ahnung was da schief läuft.

lg
 

PollerJava

Top Contributor
Ja leider muss ich aufgeben,
Es ist wie verhext, ich bekomme keine Fehlermeldung, er findet den IeEmb.exe und sonst auch alles wie beim normalen starten usw. aber es wird kein Browser angezeigt -> beim Webstart ladet er die seite nicht, keine Ahnug wieso,

Code:
webBrowser.addWebBrowserListener(
            new WebBrowserListener() {
            boolean isFirstPage = true;
                        
            public void downloadStarted(WebBrowserEvent event) {
                ta.setText(ta.getText() + ", Ich lade gerade");
                System.out.println("Ich starte den download");
                ;}
            public void downloadCompleted(WebBrowserEvent event) {;}
            public void downloadProgress(WebBrowserEvent event) {
                ta.setText(ta.getText() + ", es wird downgeloadet");
                System.out.println("Es wird downgeloadet");
                ;}
            public void downloadError(WebBrowserEvent event) {
                ta.setText(ta.getText() + ", downloadError");}
            public void documentCompleted(WebBrowserEvent event) {
                //System.out.println("Content: " + webBrowser.getContent());
                //ta.setText(ta.getText() + webBrowser.getContent());
                // Uncomment below code to test getContent()/setContent()/
                // executeScript() APIs.
                // As the setContent() call will invoke this event, which falls
                // into a loop, so check if this event is fired by the first
                // loaded page.
                
                
            }
            public void titleChange(WebBrowserEvent event) {;}  
            public void statusTextChange(WebBrowserEvent event) {;}        
        });

        
            
        try {
            webBrowser.setURL(new URL("http://www.google.at"));
            System.out.println("Klasse SimpleBrowser: " + webBrowser.getBrowserBinary() + ", " + webBrowser.getStatus().isForwardEnabled());
            System.out.println(bu.getBrowserPath() + ", " +  webBrowser.getContent() + ", " + webBrowser.getBrowserBinary() + ", " + webBrowser.getURL() + ", " + webBrowser.getStatus() + ", " + webBrowser.getPeer());
            ta.setText(ta.getText() + ", " + bu.getBrowserPath() + ", " +  webBrowser.getContent() + ", " + webBrowser.getBrowserBinary() + ", " + webBrowser.getURL() + ", " + webBrowser.getStatus() + ", " + webBrowser.getPeer());
            // Below Chinese website tests unicode support.
            //webBrowser.setURL(new URL("http://www.google.com/intl/zh-CN/"));
            
            // Print out debug messages in the command line.
            //webBrowser.setDebug(true);
        } catch (Exception e) {
            ta.setText(ta.getText() + " es ist in catch ein Fehler aufgetreten");
            System.out.println(e.getMessage());
        }
 

PollerJava

Top Contributor
So, habs jetzt -> unglaublich aber es funktioniert und jetzt bin ich auch webstart- Profi.

lg und danke für die Antworten,
 

PollerJava

Top Contributor
NetBeans schreibt bei "codebase" standardmäßig $$codebase rein und dann kann ich nicht einfach auf Start webstart gehen,
das war eigentlich alles und dass er mir bei "start webstart" immer eine neue jar- datei erstellt und dadurch die alte überschrieben wurde,
es war also ein reines netbeans- Problem aber sehr lehrreich,
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben