Sempre gostei muito do VRaptor e seus conceitos…
Nunca tive oportunidade de trabalhar com ele em um projeto de verdade.
Atualmente, com a nova versão (VRaptor 3), retomei meus estudos em horas vagas.
Tive um probleminha para testar a combinação VRaptor3 + Google Application Engine + Google Application Engine Eclipse Plugin.
A partir do blank-project-gae do vraptor, segui as instruções do readme e “upei” o projeto para a estrutura da Google.
Até aí, sem problemas…
Mas, ao tentar persistir uma entidade devidamente anotada como persistente, recebia a exceção a seguir:
org.datanucleus.jdo.exceptions.ClassNotPersistenceCapableException: The class "The class "br.com.caelum.vraptor.blank.Aluno" is not persistable. This means that it either hasnt been enhanced, or that the enhanced version of the file is not in the CLASSPATH (or is hidden by an unenhanced version), or the Meta-Data/annotations for the class are not found." is not persistable. This means that it either hasnt been enhanced, or that the enhanced version of the file is not in the CLASSPATH (or is hidden by an unenhanced version), or the Meta-Data for the class is not found.
Lendo melhor a documentação do AppEngine, descobri que as entidades anotadas devem passar por um processo denominado Enhanced.
Esse processo estava funcionando normalmente, através do plugin do eclipse, em uma outra aplicação sem o VRaptor.
Depois de algumas horas batendo cabeça e tendo que dividir minha atenção entre o trabalho e a diversão (testar o VRaptor no GAE), resolvi tentar utilizar o ANT para compilar o projeto e fazer o Enhanced.
Funcionou perfeitamente.
Agora, voltarei a “brincar” com meu projetinho VRaptor3 no GAE.
Não sei se o que me atrapalhou foi um problema ou um caso de B.I.O.S…
Mas fica a dica pra se alguém passar pelo mesmo.
No mais, ficam meus parabéns a toda a equipe por trás do VRaptor 3.
Link sobre como utilizar o ANT para compilar o projeto:
http://code.google.com/intl/pt-BR/appengine/docs/java/tools/ant.html#The_Complete_Build_File
Abraços a todos.