모두
다음 MANIFEST.MF를 사용하여 jar 파일을 만들었습니다.
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
루트에는 다음과 같이 내 spring-context.xml에서 참조되는 my.config라는 파일이 있습니다.
<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
- 클래스는 항아리 내부에서로드됩니다.
- 스프링 및 기타 종속성은 분리 된 jar에서로드됩니다.
- 스프링 컨텍스트가로드 됨 (new ClassPathXmlApplicationContext ( "spring-context / applicationContext.xml"))
- my.properties는 PropertyPlaceholderConfigurer ( "classpath : my.properties")에로드됩니다.
- .config 파일을 파일 시스템 외부에 놓고 리소스 URL을 'file :'로 변경하면 모든 것이 정상인 것 같습니다.
팁이 있습니까?