Eu estou tentando criar um projeto web usando o Vraptor 4. Na hora de rodar o servidor, diz que ele foi inicializado com sucesso. Mas quando acesso alguma página do site, dá erro. Segue a stack:
javax.enterprise.event.ObserverException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at org.jboss.weld.security.NewInstanceAction.run(NewInstanceAction.java:33)
at java.security.AccessController.doPrivileged(Native Method)
at org.jboss.weld.injection.Exceptions.rethrowException(Exceptions.java:40)
at org.jboss.weld.injection.Exceptions.rethrowException(Exceptions.java:78)
at org.jboss.weld.injection.MethodInjectionPoint.invokeOnInstanceWithSpecialValue(MethodInjectionPoint.java:101)
at org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:266)
at org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:253)
at org.jboss.weld.event.ObserverMethodImpl.notify(ObserverMethodImpl.java:232)
at org.jboss.weld.event.ObserverNotifier.notifyObserver(ObserverNotifier.java:169)
at org.jboss.weld.event.ObserverNotifier.notifyObserver(ObserverNotifier.java:165)
at org.jboss.weld.event.ObserverNotifier.notifyObservers(ObserverNotifier.java:119)
at org.jboss.weld.event.ObserverNotifier.fireEvent(ObserverNotifier.java:112)
at org.jboss.weld.event.EventImpl.fire(EventImpl.java:83)
at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:116)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NoSuchMethodError: com.google.common.collect.FluentIterable.toSet()Lcom/google/common/collect/ImmutableSet;
at br.com.caelum.vraptor.http.route.DefaultRouter.routesMatchingUri(DefaultRouter.java:152)
at br.com.caelum.vraptor.http.route.DefaultRouter.routesMatchingUriAndMethod(DefaultRouter.java:131)
at br.com.caelum.vraptor.http.route.DefaultRouter.parse(DefaultRouter.java:111)
at br.com.caelum.vraptor.http.route.DefaultRouter$Proxy$_$$_WeldClientProxy.parse(Unknown Source)
at br.com.caelum.vraptor.http.DefaultControllerTranslator.translate(DefaultControllerTranslator.java:63)
at br.com.caelum.vraptor.http.DefaultControllerTranslator$Proxy$_$$_WeldClientProxy.translate(Unknown Source)
at br.com.caelum.vraptor.observer.RequestHandlerObserver.handle(RequestHandlerObserver.java:84)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.jboss.weld.injection.MethodInjectionPoint.invokeOnInstanceWithSpecialValue(MethodInjectionPoint.java:93)
... 25 more
Acho que não tenho nenhuma versão do Guava. As dependências que tenho no meu pom.xml são as seguintes:
junit (v. 3.8.1)
javax.inject (v. 1)
weld-servlet-core (v. 2.1.2.Final)
weld-core-impl (v. 2.1.2.Final)
slf4j-log4j12 (v. 1.7.5)
hibernate-validator-cdi (v. 5.1.1.Final)
vraptor (v. 4.0.0.Final)
Tem alguma outra dependência que eu tenho que adicionar pro projeto funcionar? O próprio VRaptor já não depende do Guava?
Pelo que eu entendi, agora se usa a annotation @Controller no lugar de @Resource, certo? Porque não está funcionando?
Outra dúvida: se o Vraptor depende do Guava 15, porque ele não adiciona essa dependência?
Ah sim, e uma coisa que eu reparei é que quando eu inicio o servidor, não aparece no console as rotas que o Vraptor reconheceu no meu site, como costumava acontecer…
Não aparece nenhum erro. No navegador dá erro 404.
Não tenho esse beans.xml não. Eu usei o archetype padrão do maven pra aplicações web. Nesse arquetype a pasta META-INF fica no caminho src/main/resources/webapp. Eu devo colocar o beans.xml nessa pasta ou na que vc falou mesmo?
Olá Lucas… estou reabrindo o tópico, pois estou com problemas para fazer rodar um projeto VRaptor 4, Java 8, Tomcat 8… está dando o mesmo erro do primeiro post desse tópico… mas o detalhe é que já coloquei versão mais atualizada do Guava: Testei a versão 15, 17 e 18… também tenho o bean.xml no projeto já, mas o erro continua… também testei com o Glassfish 4.1, e dá o mesmo erro… roda sabe me dar alguma luz quanto a isso?
Caused by: java.lang.NoSuchMethodError: com.google.common.collect.FluentIterable.toSet()Lcom/google/common/collect/ImmutableSet;
at br.com.caelum.vraptor.http.route.DefaultRouter.routesMatchingUri(DefaultRouter.java:152)
at br.com.caelum.vraptor.http.route.DefaultRouter.routesMatchingUriAndMethod(DefaultRouter.java:131)
at br.com.caelum.vraptor.http.route.DefaultRouter.parse(DefaultRouter.java:111)
at br.com.caelum.vraptor.http.DefaultControllerTranslator.translate(DefaultControllerTranslator.java:63)
at br.com.caelum.vraptor.http.DefaultControllerTranslator$Proxy$_$$_WeldClientProxy.translate(Unknown Source)
at br.com.caelum.vraptor.observer.RequestHandlerObserver.handle(RequestHandlerObserver.java:91)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at org.jboss.weld.injection.MethodInjectionPoint.invokeOnInstanceWithSpecialValue(MethodInjectionPoint.java:90)
... 38 more
Obs: não estou usando Maven… e no Wildfly 8.1.0 Final roda beleza…
Oii pessoal, seguinte, consegui resolver o problema e foi mais bizarro do que achei que fosse, e até por conta disso que demorei para encontrar a solução… Eu já estava ligado nesse erro do Guava (que tinha que atualizar e tals), mas como eu já tinha atualizado, não poderia ser esse o problema…
para minha surpresa, repassando e abrindo todas as Libs que eu tinha no meu projeto, me deparei com a seguinte cena: “Dentro da lib weld-servlet.jar tinha toda a estrutura de pacotes e classes do Guava, além da própria estrutura do pacote weld… e o mais bizarro foi que a versão era a 13… bom, o que fiz foi deletar os pacotes e classes do Guava de dentro da lib e deixar apenas o Guava 18 no projeto (fora da lib do weld)… e BINGO!! Problema resolvido!!”
Fica aí a dica para o pessoal que enfrentou, enfrenta ou enfrentará esse problema… já vi isso acontecer com outras libs em outros projetos, mas não tinha me ligado logo que pudesse ser isso… sempre que você enfrentar um problema que parecer ser lib faltando, conflito de lib, mas que persiste mesmo depois de você colocar/atualizar as libs, tente ver se dentro de alguma outra lib não tem a estrutura da lib que está dando problema #FicaADica
Eu tive um problema semelhante, e depois de analisar vi que o iogi esta utilizando a dependência do guava 11. Para resolver eu fiz algo assim:
Forcei a exclusão do iogi na dependencia e inclui ele manualmente ignorando o guava, assim ficou usando somente o guava 15 que é dependencia do vraptor
Pessoal, estou novamente com este problema. No passado, resolvi, mas nao sei como. Verifiquei a arvore de dependencias e a unica dependencia do guava é a do vraptor, a 15. O que posso estar fazendo errado?