2009-10-15 12 views
5

शुरू करने में विफल रहता है हमारे पास एक जावा वेब एप्लिकेशन है जो क्रिप्टोग्राफिक पुस्तकालयों को खोजने में विफल रहता है। वर्तमान में एप्लिकेशन को पुनरारंभ करने से समस्या ठीक हो जाती है।जावा क्रिप्टोग्राफी लाइब्रेरी sporadically

निम्नलिखित निरीक्षण लॉग में दिखाई देते हैं, पूर्ण स्टैक ट्रेस के लिए नीचे देखें।

java.lang.InternalError: Could not start up the CDSA libraries. 
java.lang.NoClassDefFoundError: Could not initialize class com.apple.crypto.provider.HmacMD5 

आवेदन Java 1.6.0_15 का उपयोग कर बनाया गया है और Mac OS X Server 10.5.8 (9L30)

कोई भी विचार पर चल 1.6.0_13 के लिए तैनात किया जाता है?

चीयर्स

Jono

Build Java version 
java version "1.6.0_13" 
Java(TM) SE Runtime Environment (build 1.6.0_13-b03-211) 
Java HotSpot(TM) 64-Bit Server VM (build 11.3-b02-83, mixed mode) 

Deployed Jave version 
java version "1.6.0_15" 
Java(TM) SE Runtime Environment (build 1.6.0_15-b03-226) 
Java HotSpot(TM) 64-Bit Server VM (build 14.1-b02-92, mixed mode) 

Full stack trace: 

java.lang.NoClassDefFoundError: Could not initialize class com.apple.crypto.provider.HmacMD5 
     at java.lang.ClassLoader$NativeLibrary.load(Native Method) 
     at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1881) 
     at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1782) 
     at java.lang.Runtime.loadLibrary0(Runtime.java:823) 
     at java.lang.System.loadLibrary(System.java:1047) 
     at com.apple.crypto.provider.HmacCore.<clinit>(HmacCore.java:26) 
     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
     at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) 
     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) 
     at java.lang.reflect.Constructor.newInstance(Constructor.java:513) 
     at java.lang.Class.newInstance0(Class.java:355) 
     at java.lang.Class.newInstance(Class.java:308) 
     at java.security.Provider$Service.newInstance(Provider.java:1221) 
     at javax.crypto.Mac.a(DashoA13*..) 
     at javax.crypto.Mac.init(DashoA13*..) 
     at com.sun.net.ssl.internal.ssl.MAC.<init>(MAC.java:94) 
     at com.sun.net.ssl.internal.ssl.CipherSuite$MacAlg.newMac(CipherSuite.java:429) 
     at com.sun.net.ssl.internal.ssl.Handshaker.newWriteMAC(Handshaker.java:407) 
     at com.sun.net.ssl.internal.ssl.SSLSocketImpl.changeWriteCiphers(SSLSocketImpl.java:1791) 
     at com.sun.net.ssl.internal.ssl.Handshaker.sendChangeCipherSpec(Handshaker.java:607) 
     at com.sun.net.ssl.internal.ssl.ClientHandshaker.sendChangeCipherAndFinish(ClientHandshaker.java:868) 
     at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverHelloDone(ClientHandshaker.java:794) 
     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 java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65) 
     at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123) 
     at org.apache.commons.httpclient.methods.EntityEnclosingMethod.writeRequestBody(EntityEnclosingMethod.java:506) 
     at org.apache.commons.httpclient.HttpMethodBase.writeRequest(HttpMethodBase.java:2114) 
     at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:1096) 
     at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:398) 
     at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171) 
     at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397) 
     at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323) 

उत्तर

1

आपका त्रुटि मतलब यह नहीं है वर्ग नहीं मिला है। "वर्ग com.apple.crypto.provider.HmacMD5 को प्रारंभ नहीं किया जा सका" का अर्थ है कि स्थिर intizializer ब्लॉक (static { ... }) एक अपवाद का कारण बनता है। क्या आपके पास एमएमएसीएमडी 5 के स्रोत कोड तक पहुंच है?

हमें एक बार ऐसी ही समस्या थी जहां एक गैर-पहुंच योग्य एक्स सर्वर के कारण स्थिर ब्लॉक विफल रहा - लेकिन केवल तभी जब सर्वर पर कोई एक्स-फ़ॉरवर्डिंग-सक्षम SSH सत्र उपलब्ध नहीं था। (कक्षा फोंट को छवियों को प्रस्तुत करने के लिए बाद में उपयोग करने के लिए पंजीकृत कर रही थी)

0

"sfussenegger" के रूप में लिखा गया है, यह स्थैतिक {} विधि से संबंधित है। यदि आपको सहायक दस्तावेज़ या स्रोत कोड नहीं मिल रहा है, तो एक डिकंपेलर आज़माएं (यदि लाइसेंस केवल उस पाठ्यक्रम के साथ ठीक है)। मैंने क्रिप्टो पुस्तकालयों के साथ समस्याओं को सुरक्षित यादृच्छिक द्वारा उत्पादित बीज से संबंधित देखा (सिस्टम हल्ट्स, जब तक यह पर्याप्त यादृच्छिकता प्राप्त नहीं करता)। शायद इस तरह कुछ समस्या का हिस्सा है।

वैसे भी, यदि आप समस्या से छुटकारा नहीं पा रहे हैं, तो अभी भी एक वाणिज्यिक विकल्प के रूप में उछाल वाले महल या आईएआईके के रूप में अभी भी उछाल आया है। ज्यादा नहीं, लेकिन शायद यह मदद करता है ...

संबंधित मुद्दे