Erro de validação no VRaptor 3

Pessoal,

  Havia criado um post anterior sobre esse assunto mas está travando o navegador ao abrir a mensagem. Então decidi criar outro. O problema é o seguinte. Praticamente toda vez que tento persistir um objeto no banco o vraptor me mostra o seguinte erro no servidor:
Servlet.service() for servlet default threw 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

Já chequei na entidade se está passando algum campo com valo null mas está tudo certo. Alguém sabe o que pode ser?

finalzinho do erro:

pode ser um erro de conversão, tipo uma letra num campo que só aceita número… verifique na requisição se não tem algum parâmetro mandando valor inválido

Estou dando um post via ajax com jquery. Também coloquei um breakpoint no meu controller pra verificar se a entidade está com os atributos setados corretamente e está tudo certo. Percebi um coisa interessante. Quando eu faço logout no sistema e logo novamente eu consigo cadastrar umas três vezes e o erro começa novamente. Aí eu logo denovo e volta… Quanto o usuário faz login eu adiciono ele uma uma variável de sessão:

@Component
@SessionScoped
public class EscopoDeSessao implements Serializable {

    private Usuario usuario;
    private HttpSession httpSession;
    private HttpServletRequest httpServletRequest;

    public EscopoDeSessao(HttpSession httpSession, HttpServletRequest httpServletRequest) {
        this.httpSession = httpSession;
        this.httpServletRequest = httpServletRequest;
    }

    public Usuario getUsuario() {
        return (Usuario) this.httpSession.getAttribute("usuario");
    }

    public void setUsuario(Usuario usuario) {
        this.usuario = usuario;
        this.httpSession.setAttribute("usuario", usuario);
    }

}   

Aí então eu criei um interceptor pra verificar se o usuário está tem permissão pra cada lógica que ele executa:

@Component
@Intercepts
public class UsuarioInterceptor implements Interceptor {

    private DaoFactory daoFactory;
    private EscopoDeSessao escopoDeSessao;
    private Result result;

    public UsuarioInterceptor(DaoFactory daoFactory, EscopoDeSessao escopoDeSessao, Result result) {

        this.escopoDeSessao = escopoDeSessao;
        this.daoFactory = daoFactory;
        this.result = result;

    }
   
    public boolean accepts(ResourceMethod method) {

        String descricaoLogica = method.getMethod().getName();

        if (descricaoLogica.equals("login") || descricaoLogica.equals("logout") || descricaoLogica.equals("lerMensagem") ) {

            return false;

        } else {

            return true;

        }

    }

    public void intercept(InterceptorStack stack, ResourceMethod method, Object resourceInstance) throws InterceptionException {

        String descricaoController = method.getResource().getType().getSimpleName();
        String descricaoLogica = method.getMethod().getName();

        /*
         * Se o usuario ainda nao esta logado, interrompe
         */
        if (escopoDeSessao.getUsuario() == null) {

            /*
             * Opa! Usuário não fez login ainda!
             */
            Exception erro = new Exception("Atenção! Você não pode disparar eventos no sistema sem estar autenticado.");

            result.include("erro", erro);
            result.forwardTo(UsuarioController.class).formularioLogin();

        }

        /*
         * Verifica a permissão do usuario para execução da logica
         */
        if (daoFactory.getLogicaDoUsuarioDao().logicaPermitida(descricaoController, descricaoLogica, escopoDeSessao.getUsuario())) {

            /*
             * Ultimo Controller e Lógica acessados pelo Usuário, para serem colocados no monitor de sessão.
             */
            escopoDeSessao.setUltimoControllerLogica(descricaoController+"."+descricaoLogica);

            stack.next(method, resourceInstance);

        } else {

            result.include("titulo", "Falta de Permissão.");
            result.include("mensagem", "Você não esta autorizado a executar esta ação: { Controller: [ "+descricaoController+" ] - Lógica: [ "+descricaoLogica+" ] }.");
            result.forwardTo("/mensagemGenerica.jsp");

        }

    }
    
}

Será que pode ser problema com validação de usuário?

faz o seguinte, coloca no controller, na primeira linha da lógica com erro:

validator.onErrorUsePageOf(this).<páginaAnterior>();

e manda imprimir na jsp o ${errors}, pra ver qual foi o erro

Mesmo fazendo o post via ajax com JQuery?

se a resposta é json, vc pode usar o onErrorForwardTo. Mas sim, funciona mesmo com ajax