Sei que o suporte ao guice está em desenvolvimento ainda. Mas fiz uns
testes aqui em uma aplicação que estava rodando bem com o Spring, e
encontrei alguns erros que creio que possa ajudar vocês. Todos os testes
foram feitos rodando em glassfish v3 (JEE6).
Quando fiz deploy da aplicação e tentei autenticar no sistema deu esse erro.
org.picocontainer.injectors.AbstractInjector$UnsatisfiableDependenciesException:
cob.web.security.UserSession has unsatisfied dependency: interface
javax.servlet.http.HttpServletRequest among unsatisfiable dependencies:
[[interface javax.servlet.http.HttpServletRequest]] where
org.picocontainer.DefaultPicoContainer@1ac9fc3:4<I<org.picocontainer.DefaultPicoContainer@1b56adc:1<I<org.picocontainer.DefaultPicoContainer@2cee54:79<|
was the leaf container being asked for dependencies.
at
org.picocontainer.injectors.ConstructorInjector.getGreediestSatisfiableConstructor(ConstructorInjector.java:156)
at
org.picocontainer.injectors.ConstructorInjector$1.run(ConstructorInjector.java:184)
at
org.picocontainer.injectors.AbstractInjector$ThreadLocalCyclicDependencyGuard.observe(AbstractInjector.java:289)
at
org.picocontainer.injectors.ConstructorInjector.getComponentInstance(ConstructorInjector.java:229)
at
org.picocontainer.behaviors.AbstractBehavior.getComponentInstance(AbstractBehavior.java:66)
at
org.picocontainer.behaviors.Stored.getComponentInstance(Stored.java:92)
at
org.picocontainer.DefaultPicoContainer.startAdapters(DefaultPicoContainer.java:905)
at
org.picocontainer.DefaultPicoContainer.start(DefaultPicoContainer.java:664)
at
br.com.caelum.vraptor.ioc.pico.PicoComponentRegistry.createSessionContainer(PicoComponentRegistry.java:207)
at
br.com.caelum.vraptor.ioc.pico.PicoComponentRegistry.getSessionContainer(PicoComponentRegistry.java:175)
at
br.com.caelum.vraptor.ioc.pico.PicoComponentRegistry.provideRequestContainer(PicoComponentRegistry.java:147)
at
br.com.caelum.vraptor.ioc.pico.PicoProvider.provideForRequest(PicoProvider.java:177)
at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89)
Depois que reiniciei o dominio deu então outro erro, e nenhum dado de
sessão aparece na tela.
INFO: PWC2785: Cannot serialize session attribute
br.com.caelum.vraptor.ioc.pico.PicoComponentRegistry.session for session
98a62edb20e01076d32fb57705ef
java.io.NotSerializableException:
org.apache.catalina.session.StandardSessionFacade
at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1156)
at
java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
at
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474)
Rodando com o guice não há erro algum. Porém notei que todos os
componentes @SessionScoped não aparecem na tela, ou seja, não estão
sendo exportados para o jSP para que eu possa imprimir via
${algumaCoisa}. Notei que se eu pegar esse @SessionScoped e adicionar
manualmente via result.include no request eu consigo pega-lo no JSP.
Se eu for encontrando mais alguma coisa nos meus testes vou reportando aqui.
Abraços
org.picocontainer.injectors.AbstractInjector$UnsatisfiableDependenciesException: cob.web.security.UserSession has unsatisfied dependency: interface javax.servlet.http.HttpServletRequest among unsatisfiable dependencies: [[interface javax.servlet.http.HttpServletRequest]] where org.picocontainer.DefaultPicoContainer@1ac9fc3:4<I<org.picocontainer.DefaultPicoContainer@1b56adc:1<I<org.picocontainer.DefaultPicoContainer@2cee54:79<| was the leaf container being asked for dependencies.
INFO: PWC2785: Cannot serialize session attribute br.com.caelum.vraptor.ioc.pico.PicoComponentRegistry.session for session 98a62edb20e01076d32fb57705ef
java.io.NotSerializableException: org.apache.catalina.session.StandardSessionFacade
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1156)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474)
Rodando com o guice não há erro algum. Porém notei que todos os componentes @SessionScoped não aparecem na tela, ou seja, não estão sendo exportados para o jSP para que eu possa imprimir via ${algumaCoisa}. Notei que se eu pegar esse @SessionScoped e adicionar manualmente via result.include no request eu consigo pega-lo no JSP.
Se eu for encontrando mais alguma coisa nos meus testes vou reportando aqui.
Abraços
--
You received this message because you are subscribed to the Google Groups "caelum-vraptor-dev" group.
To post to this group, send email to caelum-vr...@googlegroups.com.
To unsubscribe from this group, send email to caelum-vraptor-...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/caelum-vraptor-dev?hl=en.
To unsubscribe from this group, send email to caelum-vraptor-...@googlegroups.com.
To unsubscribe from this group, send email to caelum-vraptor-...@googlegroups.com.
Enumeration<String> names = request.getAttributeNames();
while(names.hasMoreElements()) {
String v = request.getAttribute(name);
System.out.println(name + " >> " + v);
Fiz algo assim:
Mesmo o suporte ao guice estando em beta, atualizei uma aplicação minha e rolou tudo bem com a última atualização do Lucas que resolvia o problema dos componentes duplicados.
Como vocês já sabem, é uma aplicação bem grande que está rodando em Glassfish 3.1_b25 com cluster/load balance. Fiquei mesmo impressionado pela velocidade do guice, e como eu disse pro Lucas outro dia: guice à jato. Confesso que não usei nenhuma ferramenta para testar a velocidade, mas a impressão que eu tenho é que o acesso está praticamente instantâneo.
Parabéns pessoal.
--
You received this message because you are subscribed to the Google Groups "caelum-vraptor-dev" group.
To post to this group, send email to caelum-vr...@googlegroups.com.
To unsubscribe from this group, send email to caelum-vraptor-...@googlegroups.com.