Vraptor 4 erro guava chamar o controller

703 views
Skip to first unread message

Ricardo Wiesner

unread,
Oct 2, 2014, 3:21:03 PM10/2/14
to caelum-...@googlegroups.com

Estou utilizando netbeans 8.0.1 Glashfish 4.1 + java 8 + postgres + vraptor 4.1 estou com problemas ao acessar os controllers .... o Vraptor mostra mensagem de inicializado com sucesso, mostra todas rotas que foram mapeadas.
Quando vou chamar uma URL ocorre o erro em uma classe do guava segue:

Grave:   [admin-listener(3)] INFO br.com.caelum.vraptor.VRaptor - VRaptor 4.1.0.Final successfuly initialized
Informações:   moema was successfully deployed in 15.345 milliseconds.
Advertência:   StandardWrapperValve[default]: Servlet.service() for servlet default threw exception
javax.enterprise.event.ObserverException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:408)
at java.lang.Class.newInstance(Class.java:433)
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:98)
at org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:271)
at org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:258)
at org.jboss.weld.event.ObserverMethodImpl.notify(ObserverMethodImpl.java:237)
at org.jboss.weld.event.ObserverNotifier.notifyObserver(ObserverNotifier.java:174)
at org.jboss.weld.event.ObserverNotifier.notifyObserver(ObserverNotifier.java:170)
at org.jboss.weld.event.TransactionalObserverNotifier.notifyObserver(TransactionalObserverNotifier.java:46)
at org.jboss.weld.event.ObserverNotifier.notifyObservers(ObserverNotifier.java:124)
at org.jboss.weld.event.EventImpl.fire(EventImpl.java:84)
at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:118)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:316)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:415)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:282)
at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167)
at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:201)
at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:175)
at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235)
at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:284)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:201)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:133)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112)
at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:561)
at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:565)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:545)
at java.lang.Thread.run(Thread.java:744)
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



Com o tomcat 8.0.12 também ocorre o mesmo erro, dentro do projeto tem o beans.xml e o validation.xml 


Renan Montenegro

unread,
Oct 2, 2014, 3:29:51 PM10/2/14
to caelum-...@googlegroups.com
Como está o seu método que está chamando ?

--
You received this message because you are subscribed to the Google Groups "caelum-vraptor" group.
To unsubscribe from this group and stop receiving emails from it, send an email to caelum-vrapto...@googlegroups.com.
To post to this group, send email to caelum-...@googlegroups.com.
Visit this group at http://groups.google.com/group/caelum-vraptor.
For more options, visit https://groups.google.com/d/optout.

Ricardo Wiesner

unread,
Oct 2, 2014, 3:38:47 PM10/2/14
to caelum-...@googlegroups.com

O controller esta assim:

@Controller
public class IndexController {

    @Inject private Result result;
    
    @Get("/")
    public void index() {
        System.out.println(" = = = = = = = = = = = ");
        System.out.println(" = =   INDEX     = = = ");
        System.out.println(" = = = = = = = = = = = ");
    }
    
    @Get("/login-index")
    public void login() {
        System.out.println(" = = = = = = = = = = = ");
        System.out.println(" = = LOGIN INDEX = = = ");
        System.out.println(" = = = = = = = = = = = ");
    }
    
}

Esse ai seria o index porem qualquer outro controller que tenho no projeto retorna o mesmo erro.

Otávio Garcia

unread,
Oct 2, 2014, 3:40:50 PM10/2/14
to caelum-...@googlegroups.com

Você parece estar com duas versões só Guava. Você usa Maven? Se sim, coloque o Guava com escopo provided.

Ricardo Wiesner

unread,
Oct 2, 2014, 3:45:48 PM10/2/14
to caelum-...@googlegroups.com

Não utilizo o mavem, segue anexo a imagem das bibliotecas que estão no projeto ...

Otávio Garcia

unread,
Oct 2, 2014, 4:10:31 PM10/2/14
to caelum-...@googlegroups.com

O Guava já vem no Wildfly. Então você deve usar a mesma versão que ele usa, que é a 16.

Ricardo Wiesner

unread,
Oct 2, 2014, 4:18:31 PM10/2/14
to caelum-...@googlegroups.com

Depois de um par de dias brigando com o mesmo problema: 

Estou utilizando o Glassfish 4.1 dentro dele já tem o guava porém está versão não é compativel com a que o vraptor precisa ai foi simplesmente atualiza-la que resolveu o problema. 

Vou fazer mais uns testes se tiver mais novidades vou postar 

abraços 

Otávio Garcia

unread,
Oct 2, 2014, 4:28:04 PM10/2/14
to caelum-...@googlegroups.com

Ricardo, desculpe, achei que você usava Wildfly :).

Mas você conseguiu resolver então apenas atualizando o Glassfish?

Ricardo Wiesner

unread,
Oct 3, 2014, 9:42:41 AM10/3/14
to caelum-...@googlegroups.com

Ola pessoal postar resolução do problema.

Com o Glassfish 4.1 para resolver o problema você deve atualizar a versão do guava que vem junto com ele. Pois a versão que ele tem não é compatível com a que o vraptor 4 precisa.
Ou seja mesmo colocando o guava atualizado dentro do projeto o container não pega pois ele carrega primeiramente as libs do proprio container.

Com o tomcat 8.0.12 como o tomcat não tem implementado o CDI é necessário adicionar as libs do weld... uma dessas dependências tem o pacote guava dentro dela o que acaba ocorrendo a mesma questão anterior. como o weld inicia
por primeiro o ClassLoader já esta com as pendencias do guava e acaba não utilizando a versão do guava que você tem dentro do projeto.

Com o tomcat tem um fato curioso testando localmente pode funcionar sem problemas e no momento em que colocar em produção ocorre o erro citado anteriormente no tópico. 


----
Observação não utilizei o mavem no projeto


Consegui resolver o problema aqui. Fiz post apenas para quem ainda não passou pelo problema ficar a dica de como solucionar.

Valeu pessoal.  

Marcio Matté

unread,
Oct 30, 2014, 8:58:03 AM10/30/14
to caelum-...@googlegroups.com


Olá Ricardo, como você fez para atualizar as libs do Guava. Não encontrei link na frase onde você coloca que demonstra a solução.

Desde já um abraço!

Att. Marcio

Marcio Angelo Matté

unread,
Oct 30, 2014, 9:10:19 AM10/30/14
to caelum-...@googlegroups.com
Opa, resolvi!

Um abraço.

--
You received this message because you are subscribed to the Google Groups "caelum-vraptor" group.
To unsubscribe from this group and stop receiving emails from it, send an email to caelum-vrapto...@googlegroups.com.
To post to this group, send email to caelum-...@googlegroups.com.
Visit this group at http://groups.google.com/group/caelum-vraptor.
For more options, visit https://groups.google.com/d/optout.



--
Marcio Angelo Matté
marcio...@gmail.com

William Luis Alberton

unread,
Jul 19, 2015, 10:58:25 PM7/19/15
to caelum-...@googlegroups.com
Como você resolveu, Márcio? Eu estou com o mesmo problema e não consigo fazer o glassfish 4.1 subir com o vraptor 4 + jdk 8.

William Luis Alberton

unread,
Jul 19, 2015, 10:58:25 PM7/19/15
to caelum-...@googlegroups.com
Ricardo,

Estou com o mesmo problema. Tentei substituir a versão do guava, mas não consegui fazer funcionar. 
Também utilizo glassfish 4.1, jdk8 e vRaptor 4.

O que exatamente devo fazer?

William Luis Alberton

unread,
Jul 19, 2015, 10:58:25 PM7/19/15
to caelum-...@googlegroups.com, ota...@otavio.com.br
Otávio,

Coloquei como provided e mesmo assim continuo recebendo mesmo erro.

Ricardo Wiesner

unread,
Jul 20, 2015, 3:53:38 PM7/20/15
to caelum-...@googlegroups.com
 Ola Willian,

Conseguiu resolver ?? Atualiza a versão do guava que esta dentro da pasta do glassfish.

William Luis Alberton

unread,
Apr 28, 2016, 10:07:50 AM4/28/16
to caelum-vraptor
Naquela oportunidade sim. Mas estou com o mesmo problema agora e não esta dando certo. rsrs. Verifiquei a arvore de dependencias do maven e apenas contem o guava 15, fornecido pelo vraptor. 

Rodrigo Turini

unread,
Apr 28, 2016, 10:12:21 AM4/28/16
to caelum-vraptor
Oi William

pode nos mandar a stacktrace e tb o output do seu mvn dependency:tree?

--
Você recebeu essa mensagem porque está inscrito no grupo "caelum-vraptor" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para caelum-vrapto...@googlegroups.com.
Para postar nesse grupo, envie um e-mail para caelum-...@googlegroups.com.
Acesse esse grupo em https://groups.google.com/group/caelum-vraptor.
Para mais opções, acesse https://groups.google.com/d/optout.

Paulo R. Kraemer

unread,
Apr 28, 2016, 12:48:58 PM4/28/16
to caelum-vraptor
No Glassfish é assim:



No Glassfish o guava é um modulo (um bundle OSGi -- a lib já vem com o MANIFEST.MF com as informações para o OSGi)... 

Ultima versão (19) aqui: https://github.com/google/guava/wiki/Release19

Paulo R. Kraemer

unread,
Apr 28, 2016, 12:53:24 PM4/28/16
to caelum-vraptor
Talvez precise também atualizar essa:


Reply all
Reply to author
Forward
0 new messages