2012-12-15 3 views
0

maven을 사용하여 다국어 웹 사이트를 구축 중입니다.MissingResourceException - maven 통합 테스트 단계에서 번들을 찾을 수 없음

등록 정보 파일은 /의 SRC/메인/자원

건물 단계에서 받는다는에 의해 생성 된 전쟁 WEB-INF가/클래스에 * .properties의 파일을 포함에 저장됩니다. 프로덕션 환경에이 war 파일을 배포하면 MissingResourceException이 발생하지 않습니다.

이 MissingResourceException이있는 통합 테스트 중에는 아무 문제가 없습니다. 그런데 failures-maven-plugin 덕분에 통합 테스트가 실행됩니다.

그럼 통합 테스트 단계에서 어떤 문제가 발생합니까?

실제로 이상한 점은 통합 테스트 중에 다른 특성 파일 (I18N 목적이 아님)을로드 할 수 있다는 것입니다. 유일한 차이점은 ResourceBundle.getBundle을 사용하는 대신 FileReader를 사용하는 것입니다.

나는 뭔가를 놓친가요?

미리 도움을 주셔서 감사합니다.

답변

0

확인이 문제는 번들 가져 오는 데 사용 "그냥"기본 이름이었다

ResourceBundle.getBundle는 ("/ MyBundle을"); 대신

ResourceBundle.getBundle의 ("MyBundle")의

;

그럼에도 불구하고 코드의 첫 번째 줄은 .war이 배포되었지만 통합 테스트 중에는 잘 작동하기 때문에 이상한 동작입니다. 아무도 이유를 안다면 나는 그 대답에 정말로 관심이있다!

+0

나는 당신이 그것을 뒤로 가지고 있다고 생각한다 ... ResourceBundle.getBundle ("MyBundle"); <--- works ResourceBundle.getBundle ("/ MyBundle"); <--- 작동하지 않습니다. – jcampos8782

1

FileReader를 사용하면 문자 인코딩을 설정할 수 없습니다. 더 나은 사용 new InputStreamReader(new FileInputStream(file), "ISO-8859-1"), 이는 OS 독립적 인 명시 적입니다. 그리고 ISO-8859-1은 속성의 표준 인코딩입니다 (못생긴).

이외에도/src/test/resources/src/main/resources도 있어야합니다.

/target/classes를 확인 했습니까?

복사 단계에서 오류가 발생할 가능성이 높음 (준비 리소스, 준비 테스트 리소스 등). 아마도 클래스 기준 getClass().getResourceAsStream(relativePath)일까요?

+0

답장을 보내 주셔서 감사합니다. 질문에 대답하기 : I18N 파일은/target/classes에 있으며 getClass()와 같은 것을 사용하지 않습니다. getResourceAsStream (relativePath) ResourceBundle.getBundle ("baseName")을 사용합니다. 필자가 이해할 수없는 것은 테스트 단계 (maven-surefire-plugin)와 패키징 단계 (maven-war-plugin)가 있고 그 후에 전쟁을 사용해야하는 통합 테스트 단계 (failsafe-maven-plugin) 파일 (이 war 파일이 프로덕션에서 작동 함) 전에 생성 된 파일을 확인하고 I18N 파일이 있는지 확인합니다. maven 프로세스가 잘못 되었습니까? – Manu

+0

괜찮은 것 같습니다 (나에게); '.m2' maven 저장소를 한번보세요. 7zip/WinZip으로 전쟁을 검사합니다. –

+0

~/.m2/repository에서 전쟁을 막 체크했는데 I18N 속성 파일이 누락되었지만 다른 속성 파일이 있습니다. 우리는 바른 길을 가고 있습니다! 18n 파일을 추가 했으므로 ~/m2 폴더에 해당 전쟁의 업데이트에 문제가 있습니다. 방금 mvn을 정리하고 pom.xml에서 버전을 증가시키고 프로세스를 다시 시작하려고 시도했지만 예외는 통합 테스트 중에 결과적으로 남아 있습니다.war는 ~/.m2/repository 폴더에 anymor가 설치되어 있지 않습니다. – Manu

관련 문제