Boa tarde,
Eu criei um converter para uma entidade especifica “Usuario”, porém o vraptor está levantando um nullpointer antes de chegar a execução ao meu converter:
[code]
import java.util.ResourceBundle;
import br.com.caelum.vraptor.Convert;
import br.com.caelum.vraptor.Converter;
import br.com.caelum.vraptor.ioc.RequestScoped;
import com.coachingskills.cs.model.entity.AEntity;
import com.coachingskills.cs.model.entity.Usuario;
@Convert(Usuario.class)
@RequestScoped
public class IEntityConverter implements Converter{
public Usuario convert(String value, Class<? extends Usuario> type, ResourceBundle bundle) {
System.out.println("não implementado");
return null;
}
}[/code]
o erro ocorre na classe VRaptorInstantiator no metodo setPropertiesAfterConversions
private Object setPropertiesAfterConversions(Target<?> target, Parameters parameters) {
List<Parameter> params = parameters.forTarget(target);
// Essa chamada retorna NULL
Parameter parameter = findParamFor(params, target);
// O nullpointer ocorre na linha abaixo, por qe a variavel parameter está nul
Object converted = converterForTarget(target).convert(parameter.getValue(), target.getClassType(), localization.getBundle());
return new NewObject(this, parameters.focusedOn(target), converted).valueWithPropertiesSet();
}
Meu controller
@Resource
@Path("cadastro/usuario")
public class UsuarioController {
public void gravar(Usuario usuario){
......
}
}
a view
<form method="POST" action="cadastro/usuario/gravar" >
<input type="hidden" value="2" name="usuario.id">
<input type="text" value="" name="usuario.nome">
<input type="text" value="" name="usuario.email">
</form>
Debugando constatei que o vraptor levanta a seguinte exceção:
java.lang.IllegalStateException:
Expecting only one parameter named after Target(name=usuario, type=class com.xx.model.entity.Usuario), found instead [Parameter(usuario.nome -> teste), Parameter(usuario.email -> asd@asd.com)]
Estou criando o converter apenas para que ele busque os dados no usuário em questão diretamento do banco, mas a execução nem chega ao meu converter, oque estou fazendo de errado?