[RESOLVIDO] - Erro ao injetar um ComponentFactory @ApplicationScope vRaptor
10 respostas
jweibe
Bom o que ta acontecendo e o seguinte eu crie dois componentes factory para o vRaptor ambos como escopo de aplicação.
Tomei como base este plugin criado pelo garcia-jjgithub.
Segue a classes que criei:
ComponentFactory<Configuration> (Hibernate 4)
@Component@ApplicationScopedpublicclassServiceRegistryCreatorimplementsComponentFactory<ServiceRegistry>{privatefinalConfigurationcfg;privateServiceRegistryserviceRegistry;publicServiceRegistryCreator(Configurationcfg){/* O problema esta aki!! O Configuration não esta sendo injetado (Obs: se eu colocar o ServiceRegistryCreator como escopo de request ou session funciona numa boa ) */this.cfg=cfg;}@OverridepublicServiceRegistrygetInstance(){returnthis.serviceRegistry;}@PostConstructpublicvoidcreateComponent(){ServiceRegistryBuilderbuilder=newServiceRegistryBuilder();builder.applySettings(this.cfg.getProperties());this.serviceRegistry=builder.buildServiceRegistry();}@PreDestroypublicvoiddestroyComponent(){ServiceRegistryBuilder.destroy(this.serviceRegistry);}}
Alguém tem alguma ideia do porque isto esta acontecendo…
Lucas ele ta indo como null ai quando eu vou usar ele no createComponent da classe ServiceRegistryCreator ele me joga o erro de Null Poiter.
Mais tipow uma coisa que eu puder perceber e que o meu método
não esta sendo executado… e se eu chamar esse mesmo método no construtor da classe ConfigurationCreator e retirar a anotação @PostConstruct , tudo funciona numa boa.
A minha dúvida esta neste ponto, o meu método anotado como @PostConstruct não deveria ser invocado após o construtor?
Ou tem algum problema eu injetar um @ApplicationScoped dentro de outro @ApplicationScoped ?
Lucas_Cavalcanti
vc tá usando o pico, o spring ou o guice?
o PostConstruct deveria ser chamado sim… mas nesse caso ele funciona da mesma maneira que o construtor.
jweibe
Lucas Cavalcanti:
vc tá usando o pico, o spring ou o guice?
o PostConstruct deveria ser chamado sim… mas nesse caso ele funciona da mesma maneira que o construtor.
A Lucas como eu não entendi o porque do método não esta sendo chamado… eu to invocando o método no próprio construtor mesmo.
O container que eu estou usando e o Pico por que o Guice sem me gera um erro…