2012-12-21 2 views
6

Lesen Ich bin ein Java-Applet wie diese Einbettung:Webkit versucht Java Applet-Klasse herunterladen, bevor es von JAR

<object type="application/x-java-applet"> 
    <param name="codebase" value="/path/to/jar" /> 
    <param name="archive" value="myapplet.jar" />' + 
    <param name="code" value="my.package.MyClass" /> 
</object> 

Das Applet funktioniert in allen Browsern aber Webkit-Browser (Chrome und Safari) sind beide ärgerlich der Server mit einer nutzlosen Anforderung, die die MyClass-Datei herunterladen versucht (die in der JAR und arbeitet von dort fein) vom Server:

Chrome zeigt diesen Fehler in der Konsole:

GET http://localhost/test/my.package.MyClass 404 (Not Found) 

Das gleiche passiert, wenn Sie das <embed>-Tag anstelle von <object> verwenden, aber es passiert nicht, wenn Sie das veraltete <applet>-Tag verwenden.

Gibt es eine Möglichkeit zu verhindern, dass diese Klassendatei irgendwie heruntergeladen wird? Ich habe Gerüchte über einen codebase_lookup Parameter gehört, aber die Einstellung dieses Parameters auf false ändert nichts.

+0

Wenn Sie die Kontrolle über Ihre Anwendung halten, schlage ich vor, nur um das veraltete APPLET-Tag zu verwenden, wie es richtig funktioniert. Sicherlich wird die Unterstützung später fallen gelassen, aber während dieser Zeit wird wahrscheinlich eine bessere Lösung erscheinen. Sicherlich sind die Dinge schlimmer, wenn Sie die Anwendung an Ihren Kunden übergeben. – h22

+0

Die Verwendung des Applet-Tags ist keine Lösung, sondern ein Workaround. Ich hoffe auf eine Antwort, die vielleicht erklärt, warum Webkit versucht, die Klassendatei herunterzuladen und dieses Verhalten zu deaktivieren. Vielleicht ist es ein Webkit-Bug und jemand kennt den Ort eines Fehlerberichts, der mehr Informationen zu diesem Problem enthält. Wer weiß. – kayahr

+0

Ja, es ist ein Workaround, keine Antwort. – h22

Antwort

2

fand ich, dass dieses Problem, wenn der Parameter Code auftritt Applet im param-Tag gesetzt. Wenn Sie es mit dem entsprechenden Objekt bewegen ‚s Attribut, 404-Fehler nicht mehr angezeigt:

<object type="application/x-java-applet" code="my.package.MyClass"> 
    <param name="codebase" value="/path/to/jar" /> 
    <param name="archive" value="myapplet.jar" /> 
</object> 

Getestet auf:

Windows 8, Java 1.7.0_25: Chrome 28, 23 Firefox, IE10

OS X 10.6.8, Java 1.6.0_51: Chrome 28, 23 Firefox, Safari 5.1.9

OS X 10.7.5, Java 1.7.0_25: Firefox 23, Safari 6.0.5

OS X 10.8.4, Java 1.7.0.25: 23 Firefox, Safari 6.0.5

OS X 10.9, Java 1.7.0_25, 23 Firefox, Safari 7.0