2013-09-23 3 views
1

У меня есть проект java ee 6 в виде ушного файла, который содержит два веб-военных архива. Оба используют Omnifaces. Сегодня я обновляю Omnifaces до самой новой версии 1.6. Но теперь я больше не могу развертывать. Я получил следующее исключение:Обновление Omnifaces - идентификатор проверки дубликатов 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: JBoss AS 7.1.1/Omnifaces 1,6/JSF Mojarra 2.1.26/Primefaces 3,5

THX заранее.

+0

Вы уверены, что правильно удалили старую версию и очистили рабочую папку сервера? – BalusC

+0

Да. Я удалил все файлы из директорий развертываний/tmp/data. – Primeval

+0

Хорошо. Похоже, что обе WAR одного и того же EAR используют один и тот же контекст CDI. – BalusC

ответ

0

Эта ошибка была исправлена ​​в 1.6.1. За этой ошибкой есть довольно большая история, поэтому я только что написал блог: CDI behaved unexpectedly in EAR, so OmniFaces 1.6.1 released!

Подведено: контекст CDI не является ВОЙНОЙ, но широко распространен в EAR. Что касается конкретного исключения, с которым вы столкнулись, это связано с тем, что загружается только одна CDI ValidatorExtension из одной WAR, которая затем применяется в масштабах EAR и, таким образом, обрабатывает все классы @FacesValidator от как от ВОЙНЫ, а от WAR, где было добавлено расширение CDI из.

Обратите внимание, что это не проблема в OmniFaces. Это проблема в том, как работает CDI в EAR.

Смежные вопросы