2016-08-04 10 views
1
나는 특성의 일부 속성이 패키지에있는 정보 파일 유지하기 위해 아파치 코 몬즈 구성을 사용하고

re/iprocu/coperativeerp/config/payment/configurations.properties아파치 코 몬즈 구성 캔트 저장

private PropertiesConfiguration configs = new PropertiesConfiguration("re/iprocu/coperativeerp/config/payment/configurations.properties"); 
configs.setAutoSave(true); 
configs.setProperty(date.getYear()+"-"+date.getMonthValue()+"-01", offsetMember); 

나는 다음과 같은 오류가 위의 코드를 실행할 때 문제가

Exception in thread "JavaFX Application Thread" org.apache.commons.configuration.ConfigurationRuntimeException: Failed to auto-save 
at org.apache.commons.configuration.AbstractFileConfiguration.possiblySave(AbstractFileConfiguration.java:753) 
at org.apache.commons.configuration.AbstractFileConfiguration.clearProperty(AbstractFileConfiguration.java:799) 
at org.apache.commons.configuration.AbstractConfiguration.setProperty(AbstractConfiguration.java:485) 
at org.apache.commons.configuration.AbstractFileConfiguration.setProperty(AbstractFileConfiguration.java:788) 

업데이트

아파치 코 몬즈 구성 V. 1.10

당신은 JAR 내의 파일을 가리키는 구성을 저장할 수 없습니다

<dependency> 
    <groupId>commons-configuration</groupId> 
    <artifactId>commons-configuration</artifactId> 
    <version>1.10</version> 
</dependency> 
+0

당신은 Commons-configuration jar의 버전을 당신이 사용하고 있다고 말할 수 있습니까? –

답변

1

메이븐 의존성. JAR 외부에있는 구성 파일을 사용해보십시오. 그러면 자동 저장 옵션이 올바르게 작동하는 것을 볼 수 있습니다.

편집

당신은 JAR에 기본 위치 중 하나에서 같은 상대 경로 모두에서 파일을 넣을 수 있습니다

. 여기에 the documentation의 말입니다. 당신이 절대 경로를 지정하지 않으면

, 파일은 다음 위치에 자동으로 검색됩니다 : 현재 디렉토리 사용자 홈 디렉토리에 클래스 경로에

  • 에서
  • 에서

  • 예를 들어 기본 속성 파일 JAR에서 conf/configuration.properties에있는 JAR 파일은 동일한 상대 경로 아래에있는 사용자의 홈 디렉토리에 속성을 넣을 수 있습니다. Linux /home/username/conf/configuration.properties 또는 JAR 파일과 동일한 디렉토리에 있습니다. 둘 다 충분히 안전해야합니다.

    +0

    큰 문제는 속성 파일을 어디에 둘 것인지입니다 (위치는 상대 경로 여야하며 보안 문제가 없어야합니다). –

    +0

    업데이트 된 답변보기 –