सभी के लिए दृश्यमान नहीं हैफ़ाइल वसंत
मैं निम्नलिखित MANIFEST.MF अंदर के साथ एक जार फ़ाइल बनाई:
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.8.3
Created-By: 1.6.0_25-b06 (Sun Microsystems Inc.)
Main-Class: my.Main
Class-Path: . lib/spring-core-3.2.0.M2.jar lib/spring-beans-3.2.0.M2.jar
उसकी जड़ में एक फ़ाइल बुलाया my.config जो संदर्भित है नहीं है इस तरह मेरी वसंत-context.xml में:
<bean id="..." class="...">
<property name="resource" value="classpath:my.config" />
</bean>
अगर मैं जार चलाने के लिए, सब कुछ ठीक लग रहा है escept कि विशिष्ट फ़ाइल की लोडिंग:
Caused by: java.io.FileNotFoundException: class path resource [my.config] cannot be resolved to absolute file path because it does not reside in the file system: jar:file:/D:/work/my.jar!/my.config
at org.springframework.util.ResourceUtils.getFile(ResourceUtils.java:205)
at org.springframework.core.io.AbstractFileResolvingResource.getFile(AbstractFileResolvingResource.java:52)
at eu.stepman.server.configuration.BeanConfigurationFactoryBean.getObject(BeanConfigurationFactoryBean.java:32)
at eu.stepman.server.configuration.BeanConfigurationFactoryBean.getObject(BeanConfigurationFactoryBean.java:1)
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:142)
... 22 more
- कक्षाएं जार
- वसंत और अन्य निर्भरता अलग जार
- वसंत संदर्भ भरी हुई है से लोड किए गए हैं अंदर से लोड किए गए हैं (नई ClassPathXmlApplicationContext ("वसंत-संदर्भ/applicationContext.xml"))
- my.properties को PropertyPlaceholderConfigurer ("classpath: my.properties")
- में लोड किया गया है यदि मैं फ़ाइल सिस्टम के बाहर अपनी .config फ़ाइल डालता हूं, और संसाधन url को 'file:' में बदलता हूं, तो सब कुछ ठीक लगता है। ..
कोई सुझाव?
वे एक ही जार में हैं, लेकिन मैंने एक ही परिणाम के साथ आपके समाधान की कोशिश की: java.io.FileNotFoundException: क्लास पथ संसाधन [classpath *: my.config] को URL पर हल नहीं किया जा सकता है क्योंकि यह – BTakacs
मौजूद नहीं है, मैंने फ़ाइल को 'conf' निर्देशिका में स्थानांतरित करने का प्रयास किया, लेकिन इससे मदद नहीं मिली। (प्रलेखन कहता है: "इसका मतलब है कि" क्लासपाथ *: *। Xml "जैसे पैटर्न जार फ़ाइलों की जड़ से फ़ाइलों को पुनर्प्राप्त नहीं करेंगे बल्कि विस्तारित निर्देशिकाओं की जड़ से ही होंगे। यह जेडीके के क्लासलोडर में एक सीमा से निकलता है। getResources() विधि जो केवल पास की गई खाली स्ट्रिंग (खोज करने के लिए संभावित जड़ों को इंगित करती है) के लिए फ़ाइल सिस्टम स्थान लौटाती है। ") – BTakacs
अजीब बात यह है: my.properties को PropertyPlaceholderConfigurer द्वारा लोड किया गया है और log4j.properties sl4j द्वारा पाया गया है .. और वे एक ही स्थान पर हैं ... बस यह फ़ाइल ... – BTakacs