Я использую jsf2.2 с wildfly 8.1 и javaee7.
Моя инъекция компонента CDI в фазовращателе работает, как и ожидалось, но метод @PostConstuct никогда не вызывается
Я пытался аннотировать PhaseListener с помощью @javax.enterprise.context.ApplicationScope, SessionScope и Dependent, но безрезультатно.
Помимо именования, это именно то, что я делаю в своей конструкции поста.
//@ApplicationScope
//@SessionScope
//@Dependent
public class MyPhaseListener implements PhaseListener {
@Inject
@Any
private Instance<MyOrderedUrlHandler> myOrderedUrlhandlers;
private Map<String, List<MyOrderedUrlHandler> orderedUrlHandlersMap;
@PostConstruct
void mapOrderedUrlHandlers() {
LOG.info("Executing postconstruct");
orderedUrlHandlersMap = Maps.newHashMap();
for(final MyOrderedUrlHandler urlhandler : myOrderedUrlhandlers) {
final String handles = urlhandler.url();
final List<MyOrderedUrlHandler> registeredHandlers = orderedUrlHandlersMap.get(handles);
if(registeredHandlers == null) {
registeredHandlers = Lists.newArraList();
}
registeredHandlers.add(urlHandler);
orderedUrlHandlersMap.put(handles, registeredHandlers);
}
}
}
Внедрение уровня метода также работает нормально.
Это тот случай, когда обратный вызов @PostConstruct не является частью спецификаций jsf PhaseListener?
@PostConstruct
- person kolossus   schedule 03.02.2015