14Google App Engine
Começando um projeto
Devido às restrições de segurança na sandbox do Google App Engine, alguns componentes do VRaptor3 precisam ser substituídos e uma seleção diferente de dependências deve ser usada. Uma versão do blank-project já contendo estas alterações está disponível em nossa página de downloads.
Configuração
Para habilitar os componentes do VRaptor para o Google App Engine, você precisa adicionar a seguinte configuração no seu web.xml:
<context-param>
<param-name>br.com.caelum.vraptor.packages</param-name>
<param-value>br.com.caelum.vraptor.gae</param-value>
</context-param>
Limitações
Um detalhe importante é que a injeção de dependências não funciona no redirecionamento para lógicas; o controlador é instanciado recebendo null em todos os seus parâmetros. Sendo assim, deve-se evitar chamadas como:
result.use(Results.logic()).redirectTo(SomeController.class).someMethod();
validator.onErrorUse(Results.logic()).of(SomeController.class).someMethod();
preferindo Results.page() - ou então escrever seus controllers de forma a esperar pelos valores nulos.
Problemas comuns
O ambiente de execução do App Engine não habilita o suporte a Expression Language por padrão, nem suporta a tag
<%@ page isELIgnored="false" %>
No caso de arquivos de tags, deve-se adicionar:
<%@ tag isELIgnored="false" %>
JPA 2
O VRaptor possui suporte ao JPA nas versões 1 e 2, porém o ambiente do Google App Engine suporta apenas JPA 1. Por isso você deve evitar de copiar o JAR jpa-api-2.0.jar para seu projeto.