Я переношу наше приложение JSF/Primefaces 3.5.x GF 3.1.1 в GF 4.0. Это EAR с войной и EJB-jar и lib, наполненными баночками.WELD-001408 & ValidationInterceptor & Glassfish 4.0x & EAR & CODi не могут развертываться?
Война WEB-INF/Библиотека имеет:
'org.apache.myfaces.extensions.cdi.core: MyFaces-extcdi-ядро-апи: 1.0.5', «org.apache. myfaces.extensions.cdi.core: myfaces-extcdi-core-impl: 1.0.5 ',
' org.apache.myfaces.extensions.cdi.modules: myfaces-extcdi-jsf20-module-api: 1.0.5 ' , 'org.apache.myfaces.extensions.cdi.modules: MyFaces-extcdi-jsf20-модуль осущий: 1.0.5',
в дополнении к PF вещам и Omnifaces и некоторым другим зависимостям (CODI сообщение API & impl тоже включается - должен быть переходный отступ). ПРИМЕЧАНИЕ: no CODi Валидационный материал находится в ВОЙНЕ, и нет никаких спящих банок.
У EAR Lib также есть куча банок - он не дублирует материал CODi и не пропускает PF, он включает в себя некоторые весенние и скоростные вещи, apache commons и еще несколько вещей - AGAIN no CODi validator stuff или спящий режим.
На Deploy я получаю:
org.jboss.weld.exceptions.DeploymentException: WELD-001408 Unsatisfied dependencies for type [Validator] with qualifiers [@Default] at injection point [[UnbackedAnnotatedField] @Inject private org.hibernate.validator.internal.cdi.interceptor.ValidationInterceptor.validator]
Я видел 2 других SO сообщения, связанные с этим:
WELD-001408 Unsatisfied dependencies for type [Validator]
&
CDI/Weld Unsatisfied dependencies proglem
Ни один из них не проливает свет, поскольку оба утверждают, что проверка подлинности CODI стоит за этой проблемой - но у меня просто нет этого в моем блоке развертывания (или EAR).
Есть ли способ обойти это?
Переключение на DeltaSpike (и/или OS890 codi DS combo) не является непосредственной опцией; и не использует ee7. Мне нужно попробовать, чтобы это работало с минимальным количеством изменений кода.
Любые идеи?
Мы используем http://os890.blogspot.com/2013/07/add-on-codi-scopes-for-deltaspike.html без проблем. В этом случае вам не нужно добавлять что-либо, связанное с Bean-Validation, которое может конфликтовать. –
Ну, просто сканируя os890, похоже, что это сработает. Однако, если мне придется взломать код - тогда я также могу переключиться и использовать некоторые из JSF 2.2 (прямо сейчас, только с использованием JSF 2.0) вместо материала CODI (на самом деле просто ViewAccessScope). На самом деле пыталась не трогать слишком много кода. – fwelland
С помощью этой библиотеки вам просто нужно изменить имена пакетов. –