Seguinte pessoal…
Já tentei adaptar algumas das soluções que achei no fórum mas todas sem sucesso 
Tenho um projeto organizado da seguinte forma:
projeto: módulo onde fica toda a lógica de negócio
projeto-web: cuida da apresentação utilizando o módulo “projeto”
Dentro do módulo projeto tenho as seguintes classes:
public interface Autor {
}
public class AutorUm implements Autor {
}
public class AutorDois implements Autor {
}
public class Documento {
private Autor autor;
public Autor getAutor() {
return autor;
}
public void setAutor(Autor autor) {
this.autor = autor;
}
}
E no módulo responsável pela apresentação (projeto-web - onde se encontra o VRaptor) tenho o seguinte:
@Resource
public class DocumentoController {
public void criarNovoDocumento(Documento documento) {
//lógica...
}
}
@Resource
public class Usuario {
private String nome;
private String senha;
private Autor autor;
}
E por fim a JSP:
Autor: <input type="text" name="documento.usuario" value="usuario.autor"/>
Quando o usuário loga no sistema, ele pode ser um autor do tipo Um ou do tipo Dois.
O problema acontece justamente quando invoco o método criarNovoDocumento do Controller, lançando uma exception parecida com:
br.com.caelum.iogi.exceptions.InvalidTypeException: Cannot instantiate abstract type interface Autor
Trouxe aqui uma representação simplificada do contexto todo, mas minha duvida é a seguinte: por que o VRaptor está tentando instanciar a interface? Ele não deveria simplesmente pegar a instância de Documento (passada no método criarNovoDocumento) e chamar o setAutor passando o valor convertido do campo autor na JSP?
Já tentei usar um Converter e um ComponentFactory e até seguir os passos de alguns outros tópicos que encontrei aqui e nada até o momento.
O que eu estaria fazendo de errado?
Desde já obrigado. 