से जावाकेस्टोर को तुरंत चालू करने में समस्या का उपयोग करके का उपयोग करने का प्रयास कर रहा हूं, विशेष रूप से CryptoFactory.getInstance(properties)
विधि।फ़ाइल
यह consistantly
java.lang.RuntimeException: org.apache.ws.security.components.crypto.Merlin cannot create instance
जो evantually
java.security.UnrecoverableKeyException: Password verification failed
कुंजीस्टोर फाइल पर पासवर्ड के कारण होता है कमांड लाइन पर Keytool के साथ की जाँच कर दिया गया है फेंक और सही है जाएगा ।
कुंजीस्टोर निम्नलिखित प्रक्रिया के माध्यम से उत्पन्न होता है:
कौन सा ग्रहण porject की रूट निर्देशिका में है।
public class App {
public static void main(String[] args) throws CredentialException,
IOException {
System.out.println("Starting");
Properties p = new Properties();
p.setProperty("org.apache.ws.security.crypto.merlin.keystore.password",
"password");
p.setProperty("org.apache.ws.security.crypto.provider",
"org.apache.ws.security.components.crypto.Merlin");
p.setProperty("org.apache.ws.security.crypto.merlin.keystore.type",
"jks");
p.setProperty("org.apache.ws.security.crypto.merlin.file", "./testkeystore.jks");
Crypto crypto = CryptoFactory.getInstance(p);
System.out.println(" Complete ");
}
}
और निम्न अपवाद उत्पन्न होता है:
परीक्षण applciation इस प्रकार है
Exception in thread "main" java.lang.RuntimeException: org.apache.ws.security.components.crypto.Merlin cannot create instance
at org.apache.ws.security.components.crypto.CryptoFactory.loadClass(CryptoFactory.java:225)
at org.apache.ws.security.components.crypto.CryptoFactory.loadClass(CryptoFactory.java:180)
at org.apache.ws.security.components.crypto.CryptoFactory.getInstance(CryptoFactory.java:73)
at com.restart.test.cryptotest2.App.main(App.java:22)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at org.apache.ws.security.components.crypto.CryptoFactory.loadClass(CryptoFactory.java:211)
... 3 more
Caused by: org.apache.ws.security.components.crypto.CredentialException: Failed to load credentials.
at org.apache.ws.security.components.crypto.AbstractCrypto.load(AbstractCrypto.java:174)
at org.apache.ws.security.components.crypto.AbstractCrypto.<init>(AbstractCrypto.java:135)
at org.apache.ws.security.components.crypto.Merlin.<init>(Merlin.java:71)
... 8 more
Caused by: java.io.IOException: Keystore was tampered with, or password was incorrect
at sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:772)
at sun.security.provider.JavaKeyStore$JKS.engineLoad(JavaKeyStore.java:55)
at java.security.KeyStore.load(KeyStore.java:1214)
at org.apache.ws.security.components.crypto.AbstractCrypto.load(AbstractCrypto.java:168)
... 10 more
Caused by: java.security.UnrecoverableKeyException: Password verification failed
at sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:770)
... 13 more
पासवर्ड cmd विंडो में संकेत के रूप में करने के लिए "पासवर्ड" सेट कर दिया जाता है, लेकिन सभी के द्वारा खाते में यह एप्लिकेशन अस्वीकार कर रहा है, मैं बिना किसी समस्या के keytool -storepasswd
का उपयोग कर पासवर्ड बदल सकता हूं, इसलिए मुझे पता है कि मैं जो पासवर्ड प्रदान कर रहा हूं वह सही है; क्या कोई सुझाव दे सकता है कि यहां क्या गलत हो रहा है? मैं इस दिन पूरी तरह से असफल तरीके से डीबग करने की कोशिश कर रहा हूं।
यदि कोई अतिरिक्त जानकारी है जो मैं प्रदान कर सकता हूं तो कृपया मुझे बताएं।
संपादित करें -
folloing Maven निर्भरता इस परीक्षण का निर्माण करने की जरूरत है:
<dependency>
<groupId>org.apache.ws.security</groupId>
<artifactId>wss4j</artifactId>
<version>1.5.8</version>
<scope>provided</scope>
</dependency>
ओरेकल जेडीके 1.6 के साथ बस अपने कदम दोहराएं और यह बिना किसी त्रुटि के काम करता है। हो सकता है कि आपका पासवर्ड गलत है या आप अलग-अलग कीस्टोर खोलने की कोशिश कर रहे हैं? इसे फिर से बनाने और कीस्टोर के लिए पूर्ण पथ सेट करने का प्रयास करें। – user1516873
हाय उपयोगकर्ता, आपकी टिप्पणियों को पढ़ने के बाद मैंने इसे जेडीके/जेआरई के एक अलग संस्करण के खिलाफ बनाया और यह आरटी.जावा के स्रोतों को डाउनलोड करने के बाद काम किया और मुझे पता चला कि क्रिप्टोबेस क्लास दो जावाकिटोस्टर्स को तत्काल कर रहा था, पहला (होने वाला मेरी .jks फ़ाइल) जो ठीक से ठीक हो गई, लेकिन दूसरा 'jac \ lib \ security> में' cacerts' keystore था 'जिसमें' चेंजिट 'का डिफ़ॉल्ट पासवर्ड नहीं था जो असफलता का कारण बन रहा था; मैंने अब जेरे कीस्टोर पर पासवर्ड बदल दिया है और मैं अपने मूल जेआर/जेडीके में ठीक काम कर रहा हूं। तो यह पुष्टि करने के लिए धन्यवाद कि यह एक विन्यास था .. – Waltzy
... मुद्दा और मेरे लिए कोडिंग समस्या नहीं। हालांकि, मैं अपने प्रतिनिधि के लिए बर्बाद होने के लिए तैयार हूं, इसलिए यदि आप एक समान प्रभाव के लिए कुछ लिखना चाहते हैं तो मैं इसे आपको पुरस्कृत कर सकता हूं। – Waltzy