[RESOLVIDO] Vraptor e Varnish

Boa Tarde,

Estamos realizando alguns testes para adicionar o Varnish (cache web) na frente de uma aplicacao desenvolvida com o Vraptor.

Gostaria de saber, se alguém ja teve a necessidade e como foi feito…

Pois estamos obtendo um comportamento meio estranho, ao acessar a url que o Varnish está atendendo. O sistema não retorna nenhuma resposta no browser, mas chega o Resource do VRaptor atende a requisicao duas vezes…
Log do tomcat:

DEBUG 15 Dez 14:52:52 [http-42501-11] br.com.caelum.vraptor.VRaptor - VRaptor received a new request
DEBUG 15 Dez 14:52:52 [http-42501-11] br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler - Invoking interceptor ResourceLookupInterceptor
DEBUG 15 Dez 14:52:52 [http-42501-11] br.com.caelum.vraptor.http.DefaultResourceTranslator - trying to access /
DEBUG 15 Dez 14:52:52 [http-42501-11] br.com.caelum.vraptor.http.DefaultResourceTranslator - found resource [DefaultResourceMethod: HomeEmpresaController.indexHomeEmpresaController.index()]
DEBUG 15 Dez 14:52:52 [http-42501-11] br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler - Invoking interceptor InstantiateInterceptor
DEBUG 15 Dez 14:52:52 [http-42501-11] br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler - Invoking interceptor ExceptionHandlerInterceptor
DEBUG 15 Dez 14:52:52 [http-42501-11] br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler - Invoking interceptor FlashInterceptor
DEBUG 15 Dez 14:52:52 [http-42501-11] br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler - Invoking interceptor DevShopView
DEBUG 15 Dez 14:52:52 [http-42501-11] br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler - Invoking interceptor JPATransactionInterceptor
DEBUG 15 Dez 14:52:52 [http-42501-11] br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler - Invoking interceptor ExecuteMethodInterceptor
DEBUG 15 Dez 14:52:52 [http-42501-11] br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor - Invoking HomeEmpresaController.index()
DEBUG 15 Dez 14:52:53 [http-42501-11] br.com.caelum.vraptor.view.DefaultPageResult - forwarding to /siteempresa/index.jsp
DEBUG 15 Dez 14:52:53 [http-42501-11] br.com.caelum.vraptor.core.DefaultStaticContentHandler - Deferring request to container: /devshop/siteempresa/index.jsp
DEBUG 15 Dez 14:52:53 [http-42501-11] br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler - Invoking interceptor ForwardToDefaultViewInterceptor
DEBUG 15 Dez 14:52:53 [http-42501-11] br.com.caelum.vraptor.interceptor.ForwardToDefaultViewInterceptor - Request already dispatched and commited somewhere else, not forwarding.
DEBUG 15 Dez 14:52:53 [http-42501-11] br.com.caelum.vraptor.VRaptor - VRaptor ended the request
DEBUG 15 Dez 14:52:53 [http-42501-11] br.com.caelum.vraptor.VRaptor - VRaptor received a new request
DEBUG 15 Dez 14:52:53 [http-42501-11] br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler - Invoking interceptor ResourceLookupInterceptor
DEBUG 15 Dez 14:52:53 [http-42501-11] br.com.caelum.vraptor.http.DefaultResourceTranslator - trying to access /
DEBUG 15 Dez 14:52:53 [http-42501-11] br.com.caelum.vraptor.http.DefaultResourceTranslator - found resource [DefaultResourceMethod: HomeEmpresaController.indexHomeEmpresaController.index()]
DEBUG 15 Dez 14:52:53 [http-42501-11] br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler - Invoking interceptor InstantiateInterceptor
DEBUG 15 Dez 14:52:53 [http-42501-11] br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler - Invoking interceptor ExceptionHandlerInterceptor
DEBUG 15 Dez 14:52:53 [http-42501-11] br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler - Invoking interceptor FlashInterceptor
DEBUG 15 Dez 14:52:53 [http-42501-11] br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler - Invoking interceptor DevShopView
DEBUG 15 Dez 14:52:53 [http-42501-11] br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler - Invoking interceptor JPATransactionInterceptor
DEBUG 15 Dez 14:52:53 [http-42501-11] br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler - Invoking interceptor ExecuteMethodInterceptor
DEBUG 15 Dez 14:52:53 [http-42501-11] br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor - Invoking HomeEmpresaController.index()
DEBUG 15 Dez 14:52:54 [http-42501-11] br.com.caelum.vraptor.view.DefaultPageResult - forwarding to /siteempresa/index.jsp
DEBUG 15 Dez 14:52:54 [http-42501-11] br.com.caelum.vraptor.core.DefaultStaticContentHandler - Deferring request to container: /devshop/siteempresa/index.jsp
DEBUG 15 Dez 14:52:54 [http-42501-11] br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler - Invoking interceptor ForwardToDefaultViewInterceptor
DEBUG 15 Dez 14:52:54 [http-42501-11] br.com.caelum.vraptor.interceptor.ForwardToDefaultViewInterceptor - Request already dispatched and commited somewhere else, not forwarding.
DEBUG 15 Dez 14:52:54 [http-42501-11] br.com.caelum.vraptor.VRaptor - VRaptor ended the request

O estranho, que após a ultima linha. Não tem mais log, sendo que deveria ter carregado os arquivos js, png, css que contem no jsp retornado.

Acessando direto a url do tomcat, o sistema abre de boa…

Galera do VRaptor, gostaria de saber se voces tem alguma dica, para me ajudar a solucionar essa questao.

Será que os interceptors podem influenciar nesse fluxo de geração da resposta ?

Pois publiquei o .war do vraptorblank, e não aconteceu o mesmo problema…

A diferença do menu sistema e vraptorblank, é o uso dos interceptors e a forma como eu aponto para os jsps…
Tipo nos resources, no result eu indico o caminho fisico para o JSP, nao seguindo o modo default do vraptor.

Galera,

Descobri o motivo de nenhuma resposta ser retornada pro browser.

Na aplicacao, existe um filtro que compactava a resposta no formato gzip, fazendo o uso da classe GZIPOutputStream…

Comentei a declaracao do filtro e funcionou…

sempre tá tratando duas vezes a requisição?

o filtro do VRaptor está declarado uma vez só no web.xml?

[quote=Lucas Cavalcanti]sempre tá tratando duas vezes a requisição?

o filtro do VRaptor está declarado uma vez só no web.xml?[/quote]
Oi Lucas, blz ?

Não é nenhum problema com o VRaptor, como comentei no post anterior.
Na aplicacao existia um filtro que compactava a resposta no formato gzip, fazendo o uso da classe GZIPOutputStream…
E sabe deus o pq, o Varnish não conseguia entender a resposta… Acompanhando a requisicao pelo Firebug por exemplo, percebia que não chegava nada na resposta…
Removi o filtro e funfou =D.

A execução de duas vezes do resource, devia ser decorrencia dessa questao do filtro e do Varnish. Sem o filtro, tudo voltou ao normal.
Obrigado