2013-01-24 2 views
0

독립 실행 형 스프링 기반 Java 응용 프로그램을 빌드하려고합니다.스프링 컨텍스트 : 속성 자리 표시 자 파일을 찾을 수 없습니다.

Maven 어셈블리 플러그인을 사용하여 종속성이있는 JAR을 빌드하고 있습니다. JAR 파일의 strcture이 (다만 일부)처럼 보이는 끝 :

com 
META-INF 
org 
properties 
- taskexecutor.properties 
spring 
- properties.xml 
. 
. 
. 

매니페스트는 다음과 같습니다

Manifest-Version: 1.0 
Archiver-Version: Plexus Archiver 
Created-By: Apache Maven 
Built-By: authorname 
Build-Jdk: 1.6.0_30 
Main-Class: com.company.utilities.task.TaskLauncher 

응용 프로그램이 속성 자리 표시 자 속성을 포함하여 구성해야 실행합니다. XML 파일 :

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xsi:schemaLocation=" 
    http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-2.5.xsd 
    http://www.springframework.org/schema/context 
    http://www.springframework.org/schema/context/spring-context-2.5.xsd"> 

    <context:property-placeholder location="classpath:/properties/taskExecutor.properties"/> 

</beans> 

그것은 이클립스에서 잘 실행,하지만 난 JAR를 실행할 때이 오류가 얻을 :

Exception in thread "main" org.springframework.beans.factory.BeanInitializationException: Could not load properties; nested exception is java.io.FileN 
otFoundException: class path resource [properties/taskExecutor.properties] cannot be opened because it does not exist 
     at org.springframework.beans.factory.config.PropertyResourceConfigurer.postProcessBeanFactory(PropertyResourceConfigurer.java:78) 
     at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:663) 
     at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:638) 
     at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:407) 
     at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139) 
     at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83) 
     at com.company.utilities.task.TaskLauncher.main(TaskLauncher.java:28) 
Caused by: java.io.FileNotFoundException: class path resource [properties/taskExecutor.properties] cannot be opened because it does not exist 
     at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:158) 
     at org.springframework.core.io.support.PropertiesLoaderSupport.loadProperties(PropertiesLoaderSupport.java:181) 
     at org.springframework.core.io.support.PropertiesLoaderSupport.mergeProperties(PropertiesLoaderSupport.java:161) 
     at org.springframework.beans.factory.config.PropertyResourceConfigurer.postProcessBeanFactory(PropertyResourceConfigurer.java:69) 
     ... 6 more 

아이디어가 있으십니까?

답변

0

그것을 시도 소문자를 구분하지만, 이러한 리소스를로드 할 때 Eclipse는 없습니다.

taskexecutor.properties에서 taskExecutor.properties으로 이름을 변경하면 문제가 해결됩니다. 죄송합니다. 희망적으로 이것은 누군가 나에게 동등하게 미래의 나처럼 어리 석다 .-

0

이동 taskExecutor.properties는 루트 및 그것은 명령 줄을 통해 실행 나타납니다

<context:property-placeholder location="taskExecutor.properties"/> 
관련 문제