wildfly 8.1 및 javaee7에서 jsf2.2를 사용하고 있습니다.@PostConstruct가 PhaseListener에서 호출되지 않았습니다.
phaselistener 나의 CDI 빈 주입이 예상 작품으로,하지만 @PostConstuct 방법은 내가 가진 phaselistener에 주석을 시도 을 invocked되지 않습니다@ javax.enterprise.context.ApplicationScope, SessionScope과 아무 소용이 종속 .
이름 짓기와 별개로 이것은 내 게시물 구조에서 정확한 작업입니다.
//@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 specs의 일부가 아닌 경우입니까?
코드를 표시하십시오. '@ PostConstruct'에 대한 계약을 위반했을 수도 있습니다 – kolossus
당신과 명시적인 기본 생성자가 있다면 어떨까요? – Kukeltje
@Kukeltje 기본 생성자는 무엇을 의미합니까? phaselistener가 호출되면 '@PostConstruct'가 호출되지 않는 것이 문제입니다. 이 경우 명시 적 기본 생성자가 어떻게 도움이됩니까? – maress