2013-07-05 85 views
6
Po zaktualizowaniu najnowszego środowiska JRE (1.7.0_25), moja aplikacja nie uruchomi się ze sklepu internetowego tak jak wcześniej . Nie wdrożyłem żadnych nowszych plików JAR lub zmieniłem plik JNLP na serwerze WWW, ale nie mogę uruchomić aplikacji z webstartu. Działa dobrze z IDE, a także z lokalnego wykonania słoiczka

java.lang.NoClassDefFoundError: Nie można zainicjować klasy sun.security.ec.SunEC (pojawił się po ostatniej aktualizacji JRE)

Próbowałem wyłączyć wszystkie sprawdzanie certyfikatów itp. W zakładce Zaawansowane w panelu sterowania, ale błąd pozostaje, nie jestem pewien, czy jest to związane z nowym bezpieczeństwem ustawienia w najnowszym JRE lub czy coś się zmieniło (może na serwerze?) Nie kontroluję serwera WWW Mam tylko stronę, na której publikowana jest aplikacja i mam dostęp do lokalizacji napędu dla plików jar, uprawnień są poprawne dla lokalizacji napędu itp. Jestem teraz zagubiony, co to jest problem! Próbowałem zrezygnować z słoików i zweryfikować podpis

Doceniam każdą pomoc, jaką mogą dać mieszkańcy! pełne błędów znajduje się poniżej:

  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

Spróbuj wyszukać [błąd DB] (http://bugs.sun.com/) i jeśli nie znajdziesz nic podobnego, podnieś nowy raport. Zobacz, co Oracle ma do powiedzenia w tej sprawie. –

+0

OK, znalazłem problem na końcu. Inna używana przez nas aplikacja miała aktualizację, która zbiegła się z aktualizacją JRE; ta aplikacja zewnętrznego dostawcy wymaga pewnych dodatkowych uprawnień, więc nadpisała mój plik java.policy (oryginał był tam z rozszerzeniem .bak, kiedy sprawdziłem katalog), więc zmieniłem nazwę pliku polityki, aby sprawdzić i wszystko znowu działa. Brakowało następującego pliku: grant codeBase "file: $ {{java.ext.dirs}}/*" { \t uprawnienia java.security.AllPermission; }; –

Odpowiedz

1

Nawet po podpisać słoik jak pokazano jar signing nie będzie w stanie uruchomić aplet w przeglądarce. gdy skończysz z podpisywaniem, powinieneś dodać uprawnienia dostępu dla klasy sun.security.ec.SunEC w java.polcy twojego aktywnego jdk/jre używając policytool.exe. upewnij się, że uruchomisz policytool.exe z uruchomieniem jako administrator, abyś mógł modyfikować plik java.policy. musisz dodać wpis dla kodu grantBase "file: $ {{java.ext.dirs}}/*" {permission java.security.AllPermission; }; jak sugeruje Matt C.