vraptor3: Interceptadores

Alguém sabe dizer como utilizar os interceptadores do vraptor3?

Basta implementar a classe Interceptor e anotar com @Intercepts? Tentei inclusive usar o exemplo da documentação mas não funcionou.

@Intercepts
@RequestScoped
public class Log implements Interceptor {

    private final HttpServletRequest request;

    public Log(HttpServletRequest request) {
        this.request = request;
    }

    public void intercept(InterceptorStack stack, ResourceMethod method,
                        Object resourceInstance) throws InterceptionException {
        System.out.println("Interceptando " + request.getRequestURI());
        stack.next(method, resourceInstance);
    }

    public boolean accepts(ResourceMethod method) {
        return true;
    }

}

Minha idéia inicial é dar um commit na transação do hibernate e tratar os possíveis erros.

Desde já agradeço!

O jeito de usar interceptors é esse mesmo…

tenta lançar uma exception no interceptor pra ver se ele está sendo chamado…

deu certo o interceptador?

Consegui resolver.

Ainda não sei o que de fato impediu o interceptador ser executado, mas depois que adicionei um input no meu formulário que mapeia a propriedade versao da minha entidade, tudo voltou a funcionar.

<fieldset id="pessoal">
	<input type="hidden" name="cliente.id" value="${cliente.id}"/>
	<input type="hidden" name="cliente.versao" value="${cliente.versao}"/>
	<label><span>*</span>Nome:<input type="text" name="cliente.nome"  value="${cliente.nome}"/></label>
	<label>Email:<input type="text" name="cliente.email"  value="${cliente.email}"/></label>
</fieldset>

Acredito que estava sendo lançada uma HibernateException.

Aproveitando a deixa, tem como integrar umas taglibs mais aprimoradas (icefaces, richfaces…) com o vraptor3?

Valeu pessoal!

TUdo bem?

As taglibs do ice e do rich sao para jsf que é uma maneira de desenvolver (voltada a componentes) diferente da voltada a recursos ou ações (vraptor).

abraço