सब
मैंने निम्नलिखित 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 नामक एक फाइल है जो मेरे स्प्रिंग-संदर्भ में संदर्भित है। xml:
<bean id="..." class="...">
<property name="resource" value="classpath:my.config" />
</bean>
अगर मैं जार चलाता हूं, तो सब कुछ ठीक लग रहा है, उस विशिष्ट फ़ाइल को लोड करने के लिए:
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 को प्रॉपर्टीहोल्डरकॉन्फिगरर ("classpath: my.properties") में लोड किया गया है
- अगर मैं अपनी .config फ़ाइल को फ़ाइल सिस्टम के बाहर रखता हूँ, और संसाधन url को 'फ़ाइल:' में बदल देता हूँ, तो सब कुछ लगता है ...
कोई सुझाव?