Pessoal,
Estou trabalhando com o vRaptor já tem uns meses e não tive problema algum. Essa semana eu iniciei um novo projeto e aproveitei para atualizar a versão do vRaptor para 3.5.0, acontece que me deparei com um erro que eu ainda não tinha visto em um procedimento bastante comum. Eu criei as minhas classes e a partir delas o hibernate criou o banco de dados, em seguida criei uma tela simples de cadastro de um contrato e o controller - antes de carregar a tela eu faço uma busca no banco para ver se já existe algum registro do contrato, caso exista ele carrega o bean e eu exibo as informações na tela. Quanto eu completo as informações do contrato na tela e mando salvar a requisição nem chega no controller e me vem o erro abaixo:
Abr 09, 2013 11:16:59 AM org.apache.catalina.core.StandardWrapperValve invoke
Grave: Servlet.service() for servlet default threw exception
java.lang.NoSuchMethodError: net.vidageek.mirror.reflect.dsl.AllReflectionHandler.methodsMatching(Lnet/vidageek/mirror/list/dsl/Matcher;)Ljava/util/List;
at br.com.caelum.iogi.reflection.NewObject$JavaSetter.settersOf(NewObject.java:117)
at br.com.caelum.iogi.reflection.NewObject$Setter.settersIn(NewObject.java:66)
at br.com.caelum.iogi.reflection.NewObject$Setter.access$000(NewObject.java:62)
at br.com.caelum.iogi.reflection.NewObject.populateProperties(NewObject.java:50)
at br.com.caelum.iogi.reflection.NewObject.valueWithPropertiesSet(NewObject.java:41)
at br.com.caelum.iogi.ObjectInstantiator.instantiate(ObjectInstantiator.java:30)
at br.com.caelum.iogi.MultiInstantiator.instantiate(MultiInstantiator.java:20)
at br.com.caelum.vraptor.http.iogi.VRaptorInstantiator.instantiate(VRaptorInstantiator.java:86)
at br.com.caelum.vraptor.http.iogi.VRaptorInstantiator.instantiate(VRaptorInstantiator.java:81)
at br.com.caelum.vraptor.http.iogi.IogiParametersProvider.instantiateOrAddError(IogiParametersProvider.java:80)
at br.com.caelum.vraptor.http.iogi.IogiParametersProvider.instantiateParameters(IogiParametersProvider.java:73)
at br.com.caelum.vraptor.http.iogi.IogiParametersProvider.getParametersFor(IogiParametersProvider.java:63)
at br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor.getParametersFor(ParametersInstantiatorInterceptor.java:132)
at br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor.intercept(ParametersInstantiatorInterceptor.java:86)
at br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:59)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
at br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor.intercept(ExceptionHandlerInterceptor.java:67)
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.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:44)
at br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:91)
at br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:58)
at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:88)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.opensymphony.sitemesh.webapp.SiteMeshFilter.obtainContent(SiteMeshFilter.java:129)
at com.opensymphony.sitemesh.webapp.SiteMeshFilter.doFilter(SiteMeshFilter.java:77)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Unknown Source)
o meu bean está assim:
package br.fgv.auditoria.bean;
import java.math.BigDecimal;
import java.sql.Timestamp;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
public class Documento {
@Id
@GeneratedValue
private Long id;
private String codigo;
private String objetoContrato;
private Long idDocTipo;
private Long idFornecedor;
private Long idMedicao;
private Long idReforcoEmpenho;
private Long idClassificacaoEconomica;
private int prazoDias;
private Timestamp dataInicioVigencia;
private Timestamp dataFinalVigencia;
private BigDecimal valorPrincipal = new BigDecimal(0);
private BigDecimal valorReajuste = new BigDecimal(0);
private BigDecimal valorTotal = new BigDecimal(0);
private String numeroClausulaFinanceira;
private Timestamp dataAssinatura;
private boolean caucao;
private BigDecimal valorCaucao = new BigDecimal(0);
private Timestamp dataRecolhimentoCaucao;
private String numeroProcessoAdministrativo;
private String numeroEmpenho;
private String alteradoPor;
private Timestamp dataUltAtualizacao;
//getters e seters
<li>
<ul id="cadastrarPerfil">
<li>
<label class="fixed"><fmt:message key="informe.codigo.documento" />:</label>
<input id="codigo" type="text" class="required" name="documento.codigo" value="${documento.codigo }" />
</li>
<li>
<label class="fixed"><fmt:message key="objeto.contratacao" />:</label>
<textarea id="objeto" name="documento.objetoContrato">${documento.objetoContrato }</textarea>
</li>
<li>
<label for="autocomplete" class="fixed"><fmt:message key="contratada" />:</label>
<input id="contratada" type="text" class="required" name="documento.idFornecedor" value="" /></li>
</li>
<li>
<label class="fixed"><fmt:message key="tipo.documento" />:</label>
<fgv:comboDocTipo docTipoList="${tipoDocumento }" id="documento.idDocTipo" /></li>
<li>
<label class="fixed"><fmt:message key="prazo" />:</label>
<input id="prazoDias" type="text" class="required" name="documento.prazoDias" value="${documento.prazoDias }" />
</li>
<li>
<label class="fixed"><fmt:message key="contrato.assinado" />:</label>
<input id="dataAssinatura" type="text" class="required" name="documento.dataAssinatura" value="" />
</li>
<li>
<label class="fixed"><fmt:message key="inicio.vigencia" />:</label>
<input id="dataInicio" type="text" class="required" name="documento.dataInicioVigencia" value="" />
</li>
<li>
<label class="fixed"><fmt:message key="fim.vigencia" />:</label>
<input id="dataFim" type="text" class="required" name="documento.dataFinalVigencia" value="" />
</li>
<li>
<label class="fixed"><fmt:message key="valor.principal" />:</label>
<input id="valorPrincipal" type="text" class="required" name="documento.valorPrincipal" value="${documento.valorPrincipal }" />
</li>
<li>
<label class="fixed"><fmt:message key="valor.reajuste" />:</label>
<input id="valorReajuste" type="text" class="required" name="documento.valorReajuste" value="${documento.valorReajuste }" />
</li>
<li>
<label class="fixed"><fmt:message key="valor.total" />:</label>
<input id="valorTotal" type="text" class="required" name="documento.valorTotal" value="${documento.valorTotal }" />
</li>
<li>
<label class="fixed"><fmt:message key="numero.clausula.financeira" />:</label>
<input id="numeroClausulaFinanceira" type="text" class="required" name="documento.numeroClausulaFinanceira" value="${documento.numeroClausulaFinanceira }" />
</li>
<li>
<label class="fixed"><fmt:message key="elemento.despesa" />:</label>
<input id="elementoDespesa" type="text" class="required" name="documento.idClassificacaoEconomica" value="${documento.idClassificacaoEconomica }" />
</li>
<li>
<label class="fixed"><fmt:message key="tem.caucao" />:</label>
<input type="checkbox" id="temCaucao" name="temCaucao" value="true">
</li>
<li>
<label id="labelValorCaucao" class="fixed"><fmt:message key="valor.caucao" />:</label>
<input id="valorCaucao" type="text" class="required" name="documento.valorCaucao" value="${documento.valorCaucao }" />
</li>
<li>
<label id="labelDataRecolhimentoCaucao" class="fixed"><fmt:message key="data.recolhimento" />:</label>
<input id="dataRecolhimentoCaucao" type="text" class="required" name="documento.dataRecolhimentoCaucao" value="" />
</li>
<li>
<label class="fixed"><fmt:message key="numero.processo.administrativo" />:</label>
<input id="numeroProcessoAdministrativo" type="text" class="required" name="documento.numeroProcessoAdministrativo" value="${documento.numeroProcessoAdministrativo }" />
</li>
<li>
<label class="fixed"><fmt:message key="numero.empenho" />:</label>
<input id="numeroEmpenho" type="text" class="required" name="documento.numeroEmpenho" value="${documento.numeroEmpenho }" />
</li>
</ul>
</li>
será que alguém já teve esse problema?
Um abraço,
Mauricio