:: VRaptor 3 - Problema na aplicação exemplo vraptor-mydvds-3.0.1

5 respostas
marciobarroso

Eu baixei hoje a aplicação pois vou iniciar um novo projeto, e como fazia um tempo que não fazia nada com VRaptor iria usá-la como base.

Eu importei como projeto para o eclipse, e precisei somente acertar algumas referencias no Java build path do projeto para retirar os erros de compilação.

Em seguida, eu subi a aplicação no tomcat, e recebi então a exceção abaixo:

...
21:30:11,283  INFO [RouteBuilder        ] / --> public void br.com.caelum.vraptor.mydvds.controller.UsersController.home()
21:30:11,284 DEBUG [ParanamerNameProvider] Found parameter names with paranamer for public void br.com.caelum.vraptor.mydvds.controller.UsersController.view(br.com.caelum.vraptor.mydvds.model.User) as [user]
21:30:11,284 DEBUG [DefaultParametersControl] For /users/{user.login} retrieved /users/([^/]+) with {user.login=[^/]+}
21:30:11,284  INFO [RouteBuilder        ] /users/{user.login} --> public void br.com.caelum.vraptor.mydvds.controller.UsersController.view(br.com.caelum.vraptor.mydvds.model.User)
21:30:11,284 DEBUG [StereotypedBeansRegistrar] scanning bean with type: class br.com.caelum.vraptor.mydvds.dao.DefaultDvdDao, to see if it is a component candidate
21:30:11,284 DEBUG [StereotypedBeansRegistrar] scanning bean with type: class br.com.caelum.vraptor.mydvds.dao.DefaultUserDao, to see if it is a component candidate
21:30:11,284 DEBUG [StereotypedBeansRegistrar] scanning bean with type: class br.com.caelum.vraptor.mydvds.interceptor.AuthorizationInterceptor, to see if it is a component candidate
21:30:11,284 DEBUG [InterceptorStereotypeHandler] Found interceptor for class br.com.caelum.vraptor.mydvds.interceptor.AuthorizationInterceptor
21:30:11,284 DEBUG [StereotypedBeansRegistrar] scanning bean with type: class br.com.caelum.vraptor.mydvds.interceptor.UserInfo, to see if it is a component candidate
21:30:11,284 DEBUG [StereotypedBeansRegistrar] scanning bean with type: class br.com.caelum.vraptor.mydvds.model.User, to see if it is a component candidate
21:30:11,284 DEBUG [StereotypedBeansRegistrar] scanning bean with type: class org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor, to see if it is a component candidate
21:30:11,284 DEBUG [StereotypedBeansRegistrar] scanning bean with type: class org.springframework.context.annotation.CommonAnnotationBeanPostProcessor, to see if it is a component candidate
21:30:11,284 DEBUG [StereotypedBeansRegistrar] scanning bean with type: class br.com.caelum.vraptor.ioc.spring.InjectionBeanPostProcessor, to see if it is a component candidate
21:30:11,284 DEBUG [StereotypedBeansRegistrar] scanning bean with type: class org.springframework.beans.factory.annotation.RequiredAnnotationBeanPostProcessor, to see if it is a component candidate
21:30:11,284 DEBUG [StereotypedBeansRegistrar] scanning bean with type: class org.springframework.aop.aspectj.annotation.AnnotationAwareAspectJAutoProxyCreator, to see if it is a component candidate
21:30:11,284 DEBUG [StereotypedBeansRegistrar] scanning bean with type: class br.com.caelum.vraptor.reflection.CacheBasedTypeCreator, to see if it is a component candidate
21:30:11,285 DEBUG [VRaptorApplicationContext] Publishing event in context [br.com.caelum.vraptor.ioc.spring.VRaptorApplicationContext@d75415]: org.springframework.context.event.ContextStartedEvent[source=br.com.caelum.vraptor.ioc.spring.VRaptorApplicationContext@d75415: display name [Root WebApplicationContext]; startup date [Tue Oct 27 21:30:10 BRST 2009]; root of context hierarchy]
21:30:11,285  INFO [VRaptor             ] VRaptor 3 successfuly initialized
27/10/2009 21:30:11 org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
27/10/2009 21:30:11 org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
27/10/2009 21:30:11 org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/16  config=null
27/10/2009 21:30:11 org.apache.catalina.startup.Catalina start
INFO: Server startup in 1034 ms
21:30:12,529 DEBUG [DefaultResourceTranslator] trying to access /
21:30:12,544 DEBUG [DefaultResourceTranslator] found resource {DefaultResourceMethod: br.com.caelum.vraptor.mydvds.controller.UsersController.home}
21:30:13,629 DEBUG [ParanamerNameProvider] Found parameter names with paranamer for public void br.com.caelum.vraptor.mydvds.controller.HomeController.login() as []
21:30:13,630 DEBUG [AsmBasedTypeCreator ] Trying to make class for HomeController$login$650623907$1
21:30:13,641 DEBUG [ParanamerNameProvider] Found parameter names with paranamer for public void br.com.caelum.vraptor.mydvds.controller.HomeController.login() as []
21:30:13,641 DEBUG [AsmBasedTypeCreator ] Parameter names found for creating type are: []
21:30:13,641 DEBUG [AsmBasedTypeCreator ] Methods: []
21:30:13,641 DEBUG [AsmBasedTypeCreator ] Fields: []
21:30:13,641 DEBUG [CacheBasedTypeCreator] cached generic type for method {DefaultResourceMethod: br.com.caelum.vraptor.mydvds.controller.HomeController.login}
21:30:13,641 DEBUG [ParanamerNameProvider] Found parameter names with paranamer for public void br.com.caelum.vraptor.mydvds.controller.HomeController.login() as []
27/10/2009 21:30:13 org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet default threw exception
br.com.caelum.vraptor.validator.ValidationException

Ai então, tentei acessar a aplicação pelo uri /home/login e consegui então efetuar o cadastro, login e o crud de dvds.

Alguém poderia me auxiliar no ajuste desta exceção?

5 Respostas

Lucas_Cavalcanti

não entendi qual é o problema com essa exceção…

quando vc acessa o “/”, a parte de autenticação deveria te redirecionar para o login… isso não está acontecendo?

o que aparece no browser?

se só apareceu essa ValidationException no log, pode ser que seja só logging e não prejudique em nada o sistema…

PS: não coloque logs tão grandes na msg do guj… o javascript que mostra códigos fica demorando qdo tem códigos gigantes… =(

G

Marcio, você pode editar sua mensagem e remover até a linha 150, deixando apenas o restante? Meu chromium quase travou aqui.

Mas enfim, note essa mensagem de erro:

Ou seja, a aplicação funciona direito, está subindo (nota-se pelos logs) e tudo bem. O que me parece acontecer é que você está enviando um formulário com campos vazios, então o erro de validação está pegando. O que você acha Lucas, que conhece melhor a loja de dvds, há alguma validação usando os validators?

Lucas_Cavalcanti

acho que eu já sei qual é o problema…

o interceptador de autenticação do mydvds está usando o validator pra redirecionar pra página de login… o problema é que não dá pra fazer isso dentro de um interceptador, e eu não tinha me dado conta disso =(

talvez até funcione, mas esse não é o jeito de fazer…

pra resolver isso, abra o AuthorizationInterceptor do mydvds, troque o Validator que ele recebe por um Result, e ao inves de fazer uma validação faça um if que use o result para redirecionar:

algo como:

if usuário não está na sessão
result.use(logic()).redirectTo(HomeController.class).form();

ou algo do tipo…

vou corrigir isso assim que possível (estou sem meu notebook agora…)

marciobarroso

Vlw Lucas…

Grande abraço pessoal

Lucas_Cavalcanti

já foi corrigido, se você quiser pegar a nova versão do src:

Criado 27 de outubro de 2009
Ultima resposta 28 de out. de 2009
Respostas 5
Participantes 3