SunTlsRsaPremasterSecret KeyGenerator nicht verfügbar
Ich auf einen Fehler gestoßen, wenn meine Anwendung zu laden versucht eine RSA-Algorithmus-provider-Klasse aus JAVA. Der Ausnahme-Stapel wie folgt:
javax.jms.JMSException: RSA premaster secret error
at org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:49)
at org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1255)
at org.apache.activemq.ActiveMQConnection.ensureConnectionInfoSent(ActiveMQConnection.java:1350)
at org.apache.activemq.ActiveMQConnection.setClientID(ActiveMQConnection.java:388)
at com.trendmicro.tmsm.TMSMAgent.open(TMSMAgent.java:63)
Caused by: javax.net.ssl.SSLKeyException: RSA premaster secret error
at com.sun.net.ssl.internal.ssl.RSAClientKeyExchange.<init>(RSAClientKeyExchange.java:97)
at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverHelloDone(ClientHandshaker.java:634)
at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:226)
at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:516)
at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.java:454)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:884)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1112)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:623)
at com.sun.net.ssl.internal.ssl.AppOutputStream.write(AppOutputStream.java:59)
at org.apache.activemq.transport.tcp.TcpBufferedOutputStream.flush(TcpBufferedOutputStream.java:115)
at java.io.DataOutputStream.flush(DataOutputStream.java:106)
at org.apache.activemq.transport.tcp.TcpTransport.oneway(TcpTransport.java:167)
at org.apache.activemq.transport.InactivityMonitor.oneway(InactivityMonitor.java:237)
at org.apache.activemq.transport.WireFormatNegotiator.sendWireFormat(WireFormatNegotiator.java:168)
at org.apache.activemq.transport.WireFormatNegotiator.sendWireFormat(WireFormatNegotiator.java:84)
at org.apache.activemq.transport.WireFormatNegotiator.start(WireFormatNegotiator.java:74)
at org.apache.activemq.transport.failover.FailoverTransport.doReconnect(FailoverTransport.java:715)
at org.apache.activemq.transport.failover.FailoverTransport$2.iterate(FailoverTransport.java:115)
at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:122)
at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:43)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:637)
Caused by: java.security.NoSuchAlgorithmException: SunTlsRsaPremasterSecret KeyGenerator not available
at javax.crypto.KeyGenerator.<init>(DashoA13*..)
at javax.crypto.KeyGenerator.getInstance(DashoA13*..)
at com.sun.net.ssl.internal.ssl.JsseJce.getKeyGenerator(JsseJce.java:223)
at com.sun.net.ssl.internal.ssl.RSAClientKeyExchange.<init>(RSAClientKeyExchange.java:89)
... 22 more
Ich habe die Fehlermeldung gegooglet und die meisten Beiträge sagt, dass es ist, weil die JVM nicht finden können sunjce_provider.jar. Jedoch finde ich die Datei in /Library/Java/Home/lib/ext Ordner.
Die Plattform ist Mac OS X 10.6 und Java-version 1.6.0_17.
Meine Fragen sind:
- Warum JVM-nicht suchen /Library/Java/Home/lib/ext für jar-Dateien?
- Können wir das ändern-oder java-CLASSPATH.ext.dirs-Eigenschaft durch ändern der config-Datei?
- Jeder Vorschlag, dieses problem zu lösen?
Vielen Dank im Voraus.
InformationsquelleAutor Jill | 2010-05-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe das gleiche problem nach dem Upgrade auf eine neue Java version auf dem Mac.
Meine (maven) Projekt lief OK von der Befehl-Linie, sondern habe die "SunTlsRsaPremasterSecret" Fehler in Eclipse.
Die Lösung war das entfernen der Installierten JREs in Eclipse-Konfiguration und fügen Sie Sie erneut (mit der "Suchen..." - button).
Ich hatte meine Spitzen eclipse eine symlink-Ordner, wies auf das JDK. Entfernen und readding der wahre Ordner Eclipse löste das Problem für mich.
Ich hatte das gleiche Problem in Eclipse Luna auf Windows 7, JDK 1.8.0_05; dieser fix funktioniert, aber ich musste neu starten Eclipse hinterher, bevor es in Kraft trat.
Danke Mann, bei mir hat es geklappt mit Eclipse Luna, Windows XP, JDK-7-Umgebung. Aber nachdem das Projekt konnte nicht aufgelöst Maven-Abhängigkeiten. Eine Ahnung von dieser Art von problem?
Danke Mann, meinen Tag gerettet. ich Frage mich, warum dies nicht markiert ist, wie die Antwort auf die Frage.
InformationsquelleAutor altumano
hatte ein ähnliches Problem. Hinzufügen der classpath auf das ext-Verzeichnis fest für mich. Dieser fix funktioniert bei mir auf windows 7 mit java 1.6
Ich bin vor dem gleichen Problem. Sie können bitte werfen Sie einen Blick auf meine post?
InformationsquelleAutor Riz
Ich denke, wir finden die Ursache hier ist also eine Antwort auf meine eigene Frage.
den Java-system-property "java.ext.dirs" in Mac OS X 10.5 ist:
/Library/Java/Extensions:/System/Library/Java/Extensions:/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/lib/ext. Die sunjce_provider.jar sollte in /System/Library/Frameworks/JavaVM.framework/versions/1.6.0/Home/lib/ext, aber auch in /Library/Java/Extensions/in das problem, mac.
den sunjce_provider.jar in /Library/Java/Extensions/gehört zu Java Cryptography Extension(JCE) 1.2.2, die installiert wurde, in den mac. JCE 1.2.2 ist ein optionales Paket von J2SE 1.3.1 und kann enthält nicht genug Bibliotheken für J2SE 1.4 und höher.
Java applcation funktioniert in der Regel, nachdem alle JCE 1.2.2 zugehörigen jar-Dateien entfernt wurden, aus /Library/Java/Extensions/.
InformationsquelleAutor Jill
Ist es mir passiert beim starten den tomcat-server aus eclipse heraus. Ich löste es durch eine änderung der Konfiguration in der Windows -> Einstellungen -> Java -> Installierte JREs -> Bearbeiten. Ich hatte das update der JRE system libraries mit entsprechenden Gläser von den Ordnern, in:
Scheint es, dass nach dem letzten update habe ich das geändert JRE_Home aber vergessen die Bibliotheken.
InformationsquelleAutor borjab
Verbringen musste fast einen Tag auf dieser, während Sie versuchen, die Verwendung von JavaMail in Eclipse Luna.
Versucht, alle Ansätze vorgeschlagen, in verschiedenen Foren, aber kein Glück.
Gegraben in den kompletten Fluss und fanden die Ausnahme, die sich durch Klasse auf BootClassPath
aus KeyAgreement.getInstance()->JceSecurity.canUseProvider()->JceSecurity.getVerificationResult()->JarVerifier.verify()
void verify()
wirft JarException, IOException
{
wenn (jarURL == null) {
throw new JarException("Klasse auf dem bootclasspath");
}.......
Habe ich entfernt, sunjce_provider Glas aus \ext\ Ordner und E-Mails senden können jetzt.
Dies kann nicht richtig sein, aber atleast eine schnelle Abhilfe.
Finden Fehler in Eclipse.
InformationsquelleAutor Ish Asokan
Ich hatte auch dieses Problem, aufgefallen, dass das problem war in meinem Eclipse-Konfiguration.
Dem Weg von meiner
sunjce_provider.jar
weist daraufjdk8_64bit\lib\ext\sunjce.provider.jar
. Es sollte auf den JRE entspricht injdk8_64bit\jre\lib\ext\sunjce.provider.jar
.InformationsquelleAutor numsu