2013-10-14 2 views
0

그래서 GWT 프로젝트가 있고 서버 측에서 자원 번들에 속성 파일을로드하려고하는데 실패하고 있습니다. 파일을 찾을 수 없기 때문에 누락 된 리소스 예외가 계속 발생하지만 시도한 모든 옵션이 작동하지 않습니다. 나는 war/config/config.properties뿐만 아니라 src/config/config.properties (그래서 2 부)에서 config.properties 파일을 배치 시도하고 나는 다음과 같은 방법으로GWT resourcebundle에서 클래스 경로를 찾을 수 없습니다.

TestGWTProject.war.config.config.properties 
TestGWTProject.war.config.config 
TestGWTProject.src.config.config.properties 
TestGWTProject.war.config.config 
src.config.config.properties 
src.config.config 

내 현재 호출이

ResourceBundle bundle = ResourceBundle.getBundle("config");

입니다 그것을 호출 시도했습니다

아직 아무것도 작동하지 않습니다. 이상적으로, 나는 그것을 전쟁 파일에 보관하고 싶지만, src에 아무 것도 남겨 두지 않아도되지만,이 시점에서 찾을 수 있기를 바란다. 나는 무엇을 바라보고 있습니까?

답변

1

속성을 src 폴더에 넣으면 ResourceBundle에 클래스와 같은 정규화 된 이름을 지정해야 응용 프로그램이 컴파일되면 클래스 폴더에서 속성 파일을 찾을 수 있습니다.

예를 들어, 내 소스 폴더에 패키지 안에 넣습니다. 이처럼 :

패키지 :

SRC/패키지/서브 패키지/subsubpackage/propertiesFile.properties

내가 속성을로드 할

, 나는 정규화 된 이름으로 사용합니다. subpackage.subsubpackage.propertiesFile

이것은 응용 프로그램에 클래스의 정규화 된 이름을 지정하는 것과 같은 방법입니다 . 핵심은 속성 파일이 WAR 내부의 클래스 폴더에 복사된다는 것입니다. 그래서 실수로 ResourceBundle에게 src 폴더를 살펴 보라고했습니다.

+0

WAR 파일에서 호출 할 수있는 방법이 있습니까? 이 앱은 배치 된 앱의 클래스 패스 주변에서 사냥을 제한하기 때문에이 케이스가 더 이상적이라고 생각했습니다. 어쨌든 당신의 대답을 정확하다고 표시했습니다. – john

+0

잘 모르겠습니다. ResourceBundle 클래스 패스에 속성 파일이 있어야합니다 생각합니다. 다른 곳에서 파일을 가져 오려면 수동으로 파일을로드해야합니다 (다른 문제가 발생할 가능성이 큽니다 ...). IMO, 클래스 경로에있는 것이 편리합니다. resources (또는 config)라고하는 루트 패키지를 만들어 그곳에 둘 수 있습니다. – manubot