मुझे स्प्रिंग बीन में @Resource
के रूप में एनोटेटेड फ़ील्ड के साथ परेशानी हो रही है। मैं क्या है:वसंत @ संसाधन हैंडलिंग
एक क्षेत्र, सेटर विधि के साथ, @Resource
@Resource
private URL someUrl;
public void setSomeUrl(URL someUrl) {
this.someUrl = someUrl;
}
एक <env-entry>
टैग एनोटेट मेरी तैनाती डिस्क्रिप्टर में (web.xml)
<env-entry>
<env-entry-name>someUrl</env-entry-name>
<env-entry-type>java.net.URL</env-entry-type>
<env-entry-value>http://somedomain.net/some/path</env-entry-value>
</env-entry>
आवेदन एक साथ शुरू करने के लिए विफल रहता है BeanCreationException
, जिसे मैं उम्मीद नहीं करता क्योंकि मैं अनिवार्य रूप से स्प्रिंग-प्रबंधित बीन इंजेक्ट करने के लिए वसंत नहीं चाहता हूं। मैं वसंत @Resource
को संसाधित करना चाहता हूं और जेएनडीआई संसाधन पुनर्प्राप्त करना चाहता हूं।
यह वसंत 2.5.6SEC03 है और बीन स्वयंको अन्य @Component
उदाहरणों में ऑटोवॉयरिंग के लिए एनोटेट किया गया है। इस मामले में सर्वलेट कंटेनर टॉमकैट 7 है लेकिन आखिरकार वेबलॉगिक 10 पर तैनात किया जाएगा, इसलिए जब मैं आदर्श रूप से दोनों पर काम करने के लिए समाधान करना चाहता हूं, तो वेबलॉगिक होना आवश्यक है।
क्या मैं इस सुविधा को स्प्रिंग 2.5 में दुरुपयोग कर रहा हूं? सामान्य रूप में? क्या मुझे कुछ याद आ रही है? मैं जेएनडीआई के बारे में कुछ गलत समझता हूं? सभी मदद की सराहना की है। धन्यवाद।
बढ़िया, यह पूरी तरह से काम किया! मैंने यह भी पाया कि आप एनोटेशन बॉडी में "मैप किए गए नाम" के लिए मान को स्पिस्फी करके जेएनडीआई लुकअप करने के लिए कॉमनएनोटेशनबीनपोस्ट प्रोसेसर को मजबूर कर सकते हैं। जो कुछ भी कहा, और इस काम के बाद, मैंने सीखा कि हमारी मानक कॉर्पोरेट तैनाती प्रक्रिया एकाधिक तैनाती वर्णनकर्ताओं का समर्थन नहीं करेगी। मुझे सभी तैनाती में एक ही का उपयोग करना चाहिए। तो, यह दृष्टिकोण काम नहीं करेगा। –