Olá,
Estou tendo problemas com o preenchimento dos parâmetros de um determinado método, utilizando o VRaptor, a assinatura do método se parece com isso:
@SuppressWarnings("unchecked")
@Path ("/services/gravarContato/{appid}/{sessionid}")
public void gravarContato(String appid,
String sessionid,
int id_usuarioempresa,
int id_usuario,
int id_departamento,
int id_cargo,
int id_usuariotipo,
String cd_cpf,
String cd_sexo,
Date dt_nascimento)
O problema ocorre com os parâmetros do tipo int, quando informo id_cargo, id_departamento ou id_usuario, a URL alcança o método e tudo funciona perfeitamente, porém, quando informo algum dos outros parâmetros: id_usuarioempresa ou id_usuariotipo, simplesmente não funciona, obtenho o seguinte erro:
br.com.caelum.vraptor.http.InvalidParameterException: unable to instantiate type int
br.com.caelum.vraptor.http.ognl.OgnlParametersProvider.createRoot(OgnlParametersProvider.java:154)
br.com.caelum.vraptor.http.ognl.OgnlParametersProvider.createParameter(OgnlParametersProvider.java:122)
br.com.caelum.vraptor.http.ognl.OgnlParametersProvider.getParametersFor(OgnlParametersProvider.java:85)
java.lang.IllegalArgumentException: Vraptor does not support this interface or abstract type: int
br.com.caelum.vraptor.http.ognl.GenericNullHandler.instantiate(GenericNullHandler.java:69)
br.com.caelum.vraptor.http.ognl.OgnlParametersProvider.createRoot(OgnlParametersProvider.java:152)
br.com.caelum.vraptor.http.ognl.OgnlParametersProvider.createParameter(OgnlParametersProvider.java:122)
Porquê essa situação ocorre? Quando renomeio os parâmetros colocando o “_id” no final, tipo: usuarioempresa_id ou usuariotipo_id e, passando todos, ou, apenas alguns parâmetros, tudo funciona corretamente.
Obrigado.