2016-05-13 10 views
2

Wir entwickeln eine App, die Java Web Start verwendet.Wie kann ich Java Web Start erzwingen, einen selbst signierten JNLP auszuführen?

Wenn ich versuche, meine JNLP-Datei zu starten, erhalte ich diese Warnung: Java Application Blocked

Die „Location“ (http://<IP>:port) auf die Exception-Website-Liste hinzugefügt. Ich hätte gedacht, dass dies allein genug wäre, um den JNLP zum Laufen zu bringen.

Ich habe jedoch auch die folgenden unter "Advanced" getan:

Ich habe nur eine Java-Version - es ist Java 1.8.0_91, 32-bit.

Was muss ich noch tun, damit mein JNLP läuft?

+0

Das Hinzufügen der Ausnahme sollte ausreichen. Ich glaube nicht, dass Sie den Hafen dort brauchen. Wie nennst du Java? 'Java http: // ip/xxx.jnlp'? – assylias

+0

Haben Sie überprüft, dass die Ausnahme zur Liste hinzugefügt wurde (in% USERPROFILE% \ AppData \ LocalLow \ Sun \ Java \ Deployment \ security \ exception.sites)? Rufen Sie Java auf 'http: // xxx' oder auf file: // xxx oder gegen ein zugeordnetes Laufwerk auf? – assylias

Antwort

0

Das Problem war, dass das Permissions-Attribut im Manifest fehlte und daher in Java 1.8 ohne Warnung blockiert wurde. Die Warnung wird angezeigt, wenn Sie Java 1.7 ausführen.

0

Java-Sicherheit ist ein lustiges kleines Ding, mit dem man ringen muss.

Fügen Sie die Site für Ihre JavaWS-Anwendung der Java Security-Ausnahmeliste hinzu. Sie sagen, Sie haben das getan, aber haben Sie auch Ihre JNLP-Datei getaggt, um anzugeben, von welcher Seite sie stammt?

Im Grunde ist die jnlp-Datei nur eine XML-Datei, und wenn sie nicht angibt, woher sie stammt, kann Java möglicherweise nicht feststellen, ob sie von einer vertrauenswürdigen Site stammt.

Haben Sie ein Tag in der JNLP ähnlich?

<jnlp href="someWebstartApp.jnlp" spec="1.0+" codebase="http://myserver.com/" xmlns:jfx="http://javafx.com"> 

Insbesondere werden die Bits für die href (Name für die jnlp Datei auf der Code-Basis) und Code-Basis (wo die Datei jnlp und Gläser gefunden werden kann).

Alternativ können Sie versuchen, javaws direkt von der Kommandozeile aufzurufen:

javaws http:/myserver.com/someWebstartApp.jnlp 

Dies würde lassen Java greifen die JNLP-Datei selbst, anstatt den Einführungsprozess von dem Browser, der Java sagen, kann fehlschlagen, welche URL Das jnlp kam von.