2011-09-06 19 views
14

मैं निम्नलिखित वसंत सेम विन्यासत्रुटि प्रकार java.io.File [अस्पष्ट निर्माता तर्क प्रकारों]

<bean id="fileBean" class="java.io.File"> 
    <constructor-arg type="java.lang.String" 
        value="$prop{file.path.property}" />  
    </bean> 

मैं निम्न त्रुटि

org.springframework.beans.factory.UnsatisfiedDependencyException: 
Error creating bean with name 'fileBean' defined in class path resource [context.xml]: 
Unsatisfied dependency expressed through constructor argument with index 0 of type 
[java.net.URI]: Ambiguous constructor argument types - did you specify the correct 
bean references as constructor arguments? 

हो रही है है के साथ सेम बनाते समय एक एकल स्ट्रिंग पैरामीटर के साथ java.io.File के लिए केवल एक कन्स्ट्रक्टर इसलिए मुझे यकीन नहीं है कि यह संदिग्ध क्यों है। किसी भी मदद की सराहना की।

उत्तर

26

मिला this link जो बताता है कि क्या हो रहा है। यह पता चला है कि वसंत तर्क से मेल खाता है यदि कोई तर्क सूचकांक निर्दिष्ट नहीं है। इस मामले में वसंत मेरा एकल स्ट्रिंग तर्क लेता है और इसे java.io.File कन्स्ट्रक्टर में भेजता है जो TWO स्ट्रिंग्स लेता है। इसे कन्स्ट्रक्टर-एआर इंडेक्स निर्दिष्ट करके तय किया जा सकता है।

<bean id="fileBean" class="java.io.File"> 
    <constructor-arg index="0" 
        type="java.lang.String" 
        value="$prop{file.path.property}" />  
</bean> 
4

बस मेरे दो सेंट यहाँ: मुझे आज भी यही समस्या थी। मेरे पास एक यूनिट परीक्षण है यह जांचने के लिए कि क्या स्प्रिंग मेरी एक्सएमएल कॉन्फ़िगरेशन पढ़ सकता है और सभी आवश्यक बीन्स उत्पन्न कर सकता है। यह असफल रहा क्योंकि मैं गलत XML फ़ाइल संपादित कर रहा था। मैं स्रोत नियंत्रण से सही संस्करण के बजाय, चींटी निर्माण से "dist" संस्करण संपादित कर रहा था।

सबक सीखा: उन वसंत अपवाद संदेशों (एक्सएमएल फ़ाइल पथों के साथ) बहुत बारीकी से पढ़ें!

+0

मेरे साथ भी हुआ, अपवाद एक और एक्सएमएल फ़ाइल में हो गया जो मैं संपादित कर रहा हूं –