2013-07-05 17 views
6

Nachdem die letzte JRE (1.7.0_25) aktualisiert wurde, wird meine Anwendung nicht wie gewohnt von webstart aus gestartet . Ich habe keine neueren JAR-Dateien implementiert oder die JNLP-Datei auf dem Webserver geändert, aber ich kann die App nicht über Webstart starten. Es läuft gut aus der IDE und auch von lokalen jar Ausführungjava.lang.NoClassDefFoundError: Die Klasse sun.security.ec.SunEC konnte nicht initialisiert werden (nach der letzten JRE-Aktualisierung)

Ich habe versucht, alle Zertifikatsprüfung usw. in der erweiterten Registerkarte der Systemsteuerung deaktivieren, aber der Fehler bleibt, ich bin mir nicht sicher, ob dies mit der neuen Sicherheit verbunden ist Einstellung in der neuesten JRE oder wenn etwas anderes geändert hat (vielleicht auf dem Webserver?) Ich kontrolliere nicht den Webserver Ich habe gerade eine Seite, auf der die App veröffentlicht ist und Zugriff auf einen Speicherort für die JAR-Dateien, Berechtigungen sind korrekt für die Laufwerksorte usw. Ich bin jetzt verloren, was das Problem ist! Ich versuchte, die Gläser zurückzutreten und die Unterschrift auch zu überprüfen

Ich schätze jede mögliche Hilfe, die Völker geben können! voller Fehler ist unten:

  java.lang.NoClassDefFoundError: Could not initialize class sun.security.ec.SunEC 
       at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
       at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) 
       at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) 
       at java.lang.reflect.Constructor.newInstance(Unknown Source) 
       at java.lang.Class.newInstance(Unknown Source) 
       at sun.security.jca.ProviderConfig$2.run(Unknown Source) 
       at sun.security.jca.ProviderConfig$2.run(Unknown Source) 
       at java.security.AccessController.doPrivileged(Native Method) 
       at sun.security.jca.ProviderConfig.doLoadProvider(Unknown Source) 
       at sun.security.jca.ProviderConfig.getProvider(Unknown Source) 
       at sun.security.jca.ProviderList.getProvider(Unknown Source) 
       at sun.security.jca.ProviderList.getService(Unknown Source) 
       at sun.security.jca.GetInstance.getInstance(Unknown Source) 
       at java.security.Security.getImpl(Unknown Source) 
       at java.security.AlgorithmParameters.getInstance(Unknown Source) 
       at sun.security.x509.AlgorithmId.decodeParams(Unknown Source) 
       at sun.security.x509.AlgorithmId.<init>(Unknown Source) 
       at sun.security.x509.AlgorithmId.parse(Unknown Source) 
       at sun.security.x509.X509Key.parse(Unknown Source) 
       at sun.security.x509.CertificateX509Key.<init>(Unknown Source) 
       at sun.security.x509.X509CertInfo.parse(Unknown Source) 
       at sun.security.x509.X509CertInfo.<init>(Unknown Source) 
       at sun.security.x509.X509CertImpl.parse(Unknown Source) 
       at sun.security.x509.X509CertImpl.<init>(Unknown Source) 
       at sun.security.provider.X509Factory.engineGenerateCertificate(Unknown Source) 
       at java.security.cert.CertificateFactory.generateCertificate(Unknown Source) 
       at sun.security.provider.JavaKeyStore.engineLoad(Unknown Source) 
       at sun.security.provider.JavaKeyStore$JKS.engineLoad(Unknown Source) 
       at java.security.KeyStore.load(Unknown Source) 
       at com.sun.deploy.security.RootCertStore$1.run(Unknown Source) 
       at java.security.AccessController.doPrivileged(Native Method) 
       at com.sun.deploy.security.RootCertStore.loadCertStore(Unknown Source) 
       at com.sun.deploy.security.RootCertStore.load(Unknown Source) 
       at com.sun.deploy.security.RootCertStore.load(Unknown Source) 
       at com.sun.deploy.security.ImmutableCertStore.load(Unknown Source) 
       at com.sun.deploy.security.LazyRootStore.loadJREStore(Unknown Source) 
       at com.sun.deploy.security.LazyRootStore.getTrustAnchors(Unknown Source) 
       at com.sun.deploy.security.TrustDecider.getValidationState(Unknown Source) 
       at com.sun.deploy.security.TrustDecider.validateChain(Unknown Source) 
       at com.sun.deploy.security.TrustDecider.isAllPermissionGranted(Unknown Source) 
       at com.sun.javaws.security.AppPolicy.grantUnrestrictedAccess(Unknown Source) 
       at com.sun.javaws.security.JNLPSignedResourcesHelper.checkSignedResourcesHelper(Unknown Source) 
       at com.sun.javaws.security.JNLPSignedResourcesHelper.checkSignedResources(Unknown Source) 
       at com.sun.javaws.Launcher.prepareResources(Unknown Source) 
       at com.sun.javaws.Launcher.prepareAllResources(Unknown Source) 
       at com.sun.javaws.Launcher.prepareToLaunch(Unknown Source) 
       at com.sun.javaws.Launcher.prepareToLaunch(Unknown Source) 
       at com.sun.javaws.Launcher.launch(Unknown Source) 
       at com.sun.javaws.Main.launchApp(Unknown Source) 
       at com.sun.javaws.Main.continueInSecureThread(Unknown Source) 
       at com.sun.javaws.Main.access$000(Unknown Source) 
       at com.sun.javaws.Main$1.run(Unknown Source) 
       at java.lang.Thread.run(Unknown Source) 
+0

Versuchen Sie die Suche in der [Bug DB] (http://bugs.sun.com/) &, wenn Sie nichts ähnliches finden, einen neuen Bericht erstellen. Sehen Sie, was Oracle dazu zu sagen hat. –

+0

OK, ich habe das Problem am Ende gefunden. Eine andere Anwendung, die wir verwenden, hatte ein Update, das mit dem JRE-Update übereinstimmte. Die App dieses externen Anbieters erfordert einige zusätzliche Berechtigungen und überschrieb so meine java.policy-Datei (das Original war dort mit einer .bak-Erweiterung, als ich das Verzeichnis überprüfte), also habe ich die Policy-Datei umbenannt und alles funktioniert wieder. Der Datei fehlte Folgendes: grant codeBase "file: $ {{java.ext.dirs}}/*" { \t Berechtigung java.security.AllPermission; }; –

Antwort

1

Auch nach dem Schild Ihres Glas, wie gezeigt jar signing Sie nicht in der Lage sein, Ihr Applet im Browser ausgeführt werden. Sobald Sie mit der Unterzeichnung fertig sind, sollten Sie die Zugriffsberechtigung für die Klasse sun.security.ec.SunEC in java.polcy Ihres aktiven jdk/jre mit policytool.exe hinzufügen. Stellen Sie sicher, dass Sie policytool.exe mit run as administrator ausführen, damit Sie die Datei java.policy ändern können. Sie müssen einen Eintrag für grant hinzufügen. codeBase "file: $ {{java.ext.dirs}}/*" {permission java.security.AllPermission; }; Wie von Matt C. vorgeschlagen

Verwandte Themen