मैं System.setProperty("javax.net.ssl.trustStore", path) का उपयोग करना चाहता हूं जहां पथ जेकेएस प्रमाणपत्र को इंगित करता है जो परियोजना के संसाधनों में है। समस्या यह है कि मेरी परियोजना जीरा प्लगइन है और यह ओएसजीआई का उपयोग करती है। जब मैं getClass.getResource("certificate.jks") का उपयोग करता हूं तो मुझे path = "bundle://..." मिलता है और फिर प्रमाणपत्र नहीं मिलता है। मैंने भी वहां सिर्फ "/certificate.jks" डालने की कोशिश की लेकिन यह भी काम नहीं किया।

क्या आपके पास कुछ विचार हैं कि इस समस्या को कैसे हल किया जाए? किसी भी विचार के लिए अग्रिम धन्यवाद!

1
oputyk 3 अक्टूबर 2018, 13:16

1 उत्तर

सबसे बढ़िया उत्तर

एक समाधान Bundle.getEntry("path/to/your/trust/store/file/relative/tobundle/root") का उपयोग करना है, फिर एक फ़ाइल प्राप्त करने के लिए toURI करें जिसे आप खोल सकते हैं और स्ट्रिंग मान प्राप्त कर सकते हैं और फिर उस मान का उपयोग कर सकते हैं आपके प्रश्न में उल्लिखित सिस्टम प्रॉपर्टी सेट करने के लिए। Bundle.getResource विधि अन्य आयातित बंडलों के वर्गपथ की खोज करेगी। यदि यह काम नहीं करता है तो अपने इच्छित संसाधन को लोड करने के लिए Bundle.getClassLoader() करने का प्रयास करें क्योंकि आपको शायद एक अलग वर्ग लोडर मिल रहा है क्योंकि प्रत्येक बंडल स्वयं का उपयोग करता है। आशा है कि यह योरू क्वेसिटॉन का उत्तर देगा।

1
Duncan Krebs 6 अक्टूबर 2018, 21:56