Java-Applet funktioniert nach dem Update auf JRE 7u21 nicht mehr

Mein Java-Applet funktioniert nicht mehr, nachdem JRE auf 7u21 aktualisiert wurde.

Kurze Zusammenfassung:

Die Ausnahmen, die ich bekomme, sind: netscape.javascript.JSException und
java.lang.NoClassDefFoundError. Das Applet hat bis JRE 7u21 einwandfrei funktioniert.

Das Applet wird mit Oracle DeployJava.js in eine Webseite eingebettet.

Das Applet ist signiert, verwendet LiveConnect zum Auslösen von Ereignissen, greift über JNI auf USB- und serielle Ports zu und verwendet Code aus mehreren JAR-Dateien.

Der Fehler tritt bei allen getesteten Desktop-Browsern (Firefox, Chrome, IE8 / 9 und Safari auf Mac) auf.

Einzelheiten:

Ich habe ein Java-Applet, mit dem meine Website mit einem USB-Gerät kommunizieren kann.

Das Applet hat im vergangenen Jahr gut funktioniert.

Sobald das JRE7-Update 21 veröffentlicht wurde, funktionierte das Applet nicht mehr.

Das Applet wird auf einer Webseite (ASP.NET) mit der Oracle-Bibliothek DeployJava.js gehostet.

Es verwendet LiveConnect, um Ereignisse auf meinen Javascript-Code zurückzusetzen.

Das erste Problem, das ich auf JRE 7u21 hatte, war eine Ausnahme beim ersten Versuch, ein Ereignis über LiveConnect auszulösen:

netscape.javascript.JSException: JavaScript error while calling "_notify"
at sun.plugin2.main.client.MessagePassingJSObject.newJSException(Unknown Source)
at sun.plugin2.main.client.MessagePassingJSObject.waitForReply(Unknown Source)
at sun.plugin2.main.client.MessagePassingJSObject.call(Unknown Source)
at <myapplet>.fireJavascriptEvent(Unknown Source)
at <myapplet>$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at com.asec.easypark.applets.HomeloadingApplet.start(Unknown Source)
at com.sun.deploy.uitoolkit.impl.awt.AWTAppletAdapter.start(Unknown Source)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

Um dieses Problem zu mindern, habe ich die folgende Zeile zum Abschnitt 'manifest' im Ant-Skript für das Applet hinzugefügt:

attribute name="Trusted-Library" value="true" 

Ich habe das Applet mit JDK 7u21 erstellt und es schien zu helfen:

Danach bekam ich einen weiteren Fehler - also glaube ich, dass dieser behoben wurde, aber es könnte das nächste Problem verursacht haben.

Das zweite Problem besteht darin, dass das Applet Code aus mehreren JAR-Dateien aufruft. beim ersten Aufruf von Code in einer anderen JAR-Datei (nicht der des Applets) schlägt mit der folgenden Ausnahme fehl:

**java.lang.NoClassDefFoundError**: com/codeminders/hidapi/HIDManager
    at <PackageInSecondJar>.communication.HIDTransmitter.open(Unknown Source)
    at <PackageInSecondJar>.communication.HIDTransmitterSearcher.find(Unknown Source)
    at <PackageInSecondJar>.communication.CompositeTransmitterSearcher.find(Unknown Source)
    at <PackageInAppletJar>.communication.AppletCommunicationBroker.setupDeviceProxy(Unknown Source)
    at <PackageInAppletJar>.communication.AppletCommunicationBroker.setup(Unknown Source)
    at <PackageInAppletJar>.<TheApplet>$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at <PackageInAppletJar>.<TheApplet>.start(Unknown Source)
    at com.sun.deploy.uitoolkit.impl.awt.AWTAppletAdapter.start(Unknown Source)
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

Folgende Maßnahmen habe ich bereits ausprobiert - ohne Erfolg:

HTTP-Header 'Cache-Control' hinzufügen = 'no-cache'

HTTP-Header 'Cache-Control' hinzufügen = 'no-cache, no-store, must-revalidate'

Verwenden Sie die neuesten DeployJava.js vonhttp://java.com/js/deployJava.txt (nach Umbenennung in .js)

Das Applet verfügt bereits über folgende Funktionen:

Markieren Sie die Sicherheit "All-Berechtigungen" in JNLP

Die Haupt-JAR wird mit einem Zertifikat von einer externen Zertifizierungsstelle signiert

Der Applet-Code läuft in einemAccessController.doPrivileged Block.

Ich bin ein Java-Neuling, ignorieren Sie also bitte nicht die offensichtlichen Lösungen ...

Vielen Dank im Voraus für Ihre Hilfe,

Kerl.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage