से फ्रीमार्कर टेम्पलेट सेट करना मेरे पास एक वेब एप्लिकेशन है जिसे मुझे मैन्युअल रूप से एक फ्रीमार्कर टेम्पलेट प्राप्त करने की आवश्यकता है - टेम्पलेट लाइब्रेरी प्रोजेक्ट में कक्षा के माध्यम से प्राप्त किया जाता है, लेकिन वास्तविक टीपीएल फ़ाइल वेब एप्लिकेशन क्लासपाथ में निहित होती है। तो, 2 परियोजनाएं हैं, एक 'ताक-बैकएंड-एपीआई' और दूसरा 'ताक-वेब'; टैक-बैकएंड-एपीआई में टेम्पलेट को पकड़ने और इसे संसाधित करने के लिए कोड है, लेकिन टैक-वेब वह जगह है जहां टेम्पलेट स्टोर होता है (विशेष रूप से: वेब-आईएनएफ/कक्षाएं/ईमेल/विक्रेता.पीएल) - मैंने सबकुछ इस्तेमाल करने से कोशिश की है Freemarkers setClassForTemplateLoading विधि का उपयोग करने के लिए स्प्रिंग्स क्लासपाथ संसाधन। मुझे लगता है कि यह काम करेगा:क्लासपाथ
freemarkerConfiguration = new Configuration();
freemarkerConfiguration.setClassForTemplateLoading(this.getClass(), "");
Template freemarkerTemplate = freemarkerConfiguration.getTemplate("/email/vendor.tpl");
अभी तक, मुझे हमेशा FileNotFoundException मिलता है। क्या कोई क्लासपाथ से टेम्पलेट प्राप्त करने का सबसे अच्छा तरीका बता सकता है?
धन्यवाद।
freemarkerConfiguration = new Configuration();
freemarkerConfiguration.setClassForTemplateLoading(this.getClass(), "/");
Template freemarkerTemplate = freemarkerConfiguration.getTemplate("email/vendor.tpl");
कक्षा लोडर पदानुक्रम के आधार पर, कभी-कभी इसे सावधानीपूर्वक विचार किया जाना चाहिए कि आप 'क्लास टेम्पलेट लोडर' के लिए कौन सी कक्षा निर्दिष्ट करते हैं। प्रायः 'क्लास टेम्पलेट लोडर' कन्स्ट्रक्टर का उपयोग करना सबसे अच्छा होता है जो 'क्लासलोडर' सीधे ('कक्षा' के बजाय - 2.3.22 के बाद) लेता है, और उसके बाद वेब अनुप्रयोग के थ्रेड संदर्भ क्लास लोडर में गुजरता है। – ddekany