Erro VRaptor 3

9 respostas
K

E ae Galera,

apos eu realizar uma insercao no banco estou recebendo a seguinte exception

br.com.caelum.vraptor.InterceptionException: There are validation errors and you forgot to specify where to go. Please add in your method something like: validator.onErrorUse(page()).of(AnyController.class).anyMethod(); or any view that you like. If you didn't add any validation error, it is possible that a conversion error had happened.

9 Respostas

Lucas_Cavalcanti

se vc não adicionou erros de validação, é possível que aconteceu um erro de conversão

K

Consegui resolver este problema, eu nao esta usando conversor para data.

agora estou com outro quando insiro alguma coisa no banco recebo a seguinte exception

SEVERE: Servlet.service() for servlet [default] in context with path [/sistecam] threw exception org.hibernate.TransactionException: Transaction not successfully started at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:127) at br.com.caelum.vraptor.util.hibernate.HibernateTransactionInterceptor.intercept(HibernateTransactionInterceptor.java:50) at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54) at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) at br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:83) at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54) at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) at br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:48) at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54) at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56) at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) at br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor.intercept(ExceptionHandlerInterceptor.java:71) at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54) at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) at br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:69) at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54) at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) at br.com.caelum.vraptor.core.EnhancedRequestExecution.execute(EnhancedRequestExecution.java:23) at br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92) at br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:58) at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89) 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:240) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:498) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:394) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:243) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662)

codigo que eu estarto a transacao

public void merge(T clazz) throws HibernateException { try{ tx = session.beginTransaction(); session.merge(clazz); tx.commit(); } catch(HibernateException ex){ tx.rollback(); throw ex; } }
web.xml

<context-param> <param-name>br.com.caelum.vraptor.packages</param-name> <param-value>br.com.caelum.vraptor.util.hibernate</param-value> </context-param>

o que eu percebi e que no momento do desenvolvimento, acontece este erro mais os dados sao inserido, mais quando faco o deploy no tomcat funciona normalmente

Lucas_Cavalcanti

se vc usa o pacote do hibernate, o VRaptor já controla as transações pra vc, não precisa fazer na mão.

K

mais se eu remover o controle manualmente quando eu faco o deploy no tomcat ao inserir ele nao realiza o commit e nao persiste as informacoes no banco

Lucas_Cavalcanti

o vraptor vai fazer o commit.

K

Mais em algumas situacoes ele nao realizou o commit

Lucas_Cavalcanti

quais situações?

se passou por uma requisição tratada pelo vraptor, deveria fazer o commit sim (a menos que deu alguma exception ou erro de validação)

adrianohardcore

Não sou muito experiente no assunto , nem sei se isso tem haver , mas colocar isto validator.validate(classe); logo no inicio do metodo salvar do controller já me ajudou muito em um caso que não sabia qual motivo de um erro que estava dando!

Lucas_Cavalcanti

essa linha só faz diferença se vc usou as anotações do BeanValidations/Hibernate Validator (tipo @NotNull)

Criado 9 de fevereiro de 2012
Ultima resposta 9 de fev. de 2012
Respostas 9
Participantes 3