2013-09-23 3 views
1

두 개의 웹 전쟁 아카이브가 포함 된 ear 파일로 번들 된 java ee 6 프로젝트가 있습니다. 두 가지 모두 사용합니다. 오늘 저는 Omnifaces를 최신 버전 1.6으로 업그레이드합니다. 하지만 지금은 더 이상 배포 할 수 없습니다. 나는 다음과 같은 예외를 가지고 :전 환 업그레이드 - 유효성 검사기 ID 중복

java.lang.IllegalArgumentException: Registering validator 'class org.omnifaces.validator.RequiredCheckboxValidator' failed, duplicates validator ID 'omnifaces.RequiredCheckboxValidator' of other validator 'class org.omnifaces.validator.RequiredCheckboxValidator'. 
    at org.omnifaces.cdi.validator.ValidatorExtension.processValidators(ValidatorExtension.java:73) 
... 

내 Envroiment : 사전에 7.1.1/Omnifaces 1.6/JSF 인 Mojarra 2.1.26/Primefaces 3.5

THX AS 보스.

+0

이전 버전을 올바르게 제거하고 서버의 작업 폴더를 정리 했습니까? – BalusC

+0

예. 배포/tmp/data 디렉토리에서 모든 파일을 제거했습니다. – Primeval

+0

오케이. 그런 다음 동일한 EAR의 두 WAR 모두 동일한 CDI 컨텍스트를 공유하는 것으로 보입니다. – BalusC

답변

0

이 버그는 1.6.1에서 수정되었습니다. 이 버그에 대한 이야기가 있습니다. 따라서 블로그를 작성했습니다 : CDI behaved unexpectedly in EAR, so OmniFaces 1.6.1 released!

요약 : CDI 컨텍스트는 전체 WAR가 아니지만 전체적으로는 아닙니다. 하나의 WAR에서 CDI ValidatorExtension을로드 한 다음 EAR 전체에 적용하여 클래스를 모두 에서 처리 했으므로 CDI 확장을로드하는 WAR 대신 WAR가 아닌 WAR가 발생했기 때문에 발생했습니다 에서.

OmniFaces에서는 문제가되지 않습니다. 이것은 EAR에서 CDI가 작동하는 방식에 문제가 있습니다.