Estou tentando executar o exemplo da matéria sobre o Velocity que saiu na JM6, mas estou tendo algumas dificuldades. Peguei os códigos no site da revista e tô fazendo o seguinte:
As pastas e arquivos estão distribuídos assim:
webapps|ExemploVelocity|FormCadastro.vm
webapps|ExemploVelocity|velocity.properties
webapps|ExemploVelocity|WEB-INF|web.xml
webapps|ExemploVelocity|WEB-INF|classes|CadastroVelocity.class
webapps|ExemploVelocity|WEB-INF|lib|velocity-dep-1.3.jar
Bem, FormCadastro.vm e CadastroVelocity.class simplesmente copiei do fonte da revista.
Como velocity.properties não veio no fonte, peguei um da pasta de exemplos do Velocity, que está apenas assim:
Está retornando o seguinte erro, quando tento acessar http:||127.0.0.1:8080|ExemploVelocity|xxxx.teste :
[color=“red”]HTTP Status 503 - Servlet ExemploVelocity is currently unavailable
type Status report
message Servlet ExemploVelocity is currently unavailable
description The requested service (Servlet ExemploVelocity is currently unavailable) is not currently available.[/color]
O que estou esquecendo ou fazendo de errado? :roll:
Não tem init. Estou usando o exemplo da revista, igualzinho, que extende a VelocityServlet e, pelo que entendi, chama o método init() do VelocityEngine automaticamente.
O erro que estava dando parou e aparentemente o servlet está iniciando, mas está retornando uma página em branco (<html><body></body></html>) e dando o seguinte erro no console do Tomcat:
org.apache.velocity.exception.ResourceNotFoundException: Unable to find resource ‘FormCadastro.vm’
Já coloquei o FormCadastro.vm em todas as pastas da minha webapp e nada. Alterei o file.resource.loader.path tbm, sem sucesso.
Uma coisa que achei estranha é que o velocity_example.log está sendo gerado na pasta home do eclipse, se inicio o tomcat através dele, usando o plugin da sysdeo. Iniciando o tomcat pelo seu startup.bat ele passa a ser gerado na home do tomcat. É assim mesmo?? Me parece que o ResourceManager do VelocityServlet está usando um caminho errôneo, mas não consegui corrigir isso.
Consegui rodar, mas colocando o template na pasta home do Eclipse e inicializando o Tomcat a partir do Eclipse. Inicializando o Tomcat pelo startup.bat não rola, ele não encontra o template, apesar de já ter colocado em todas as pastas possíveis
Deve ser alguma configuração do Velocity, pois, pelo que parece, ele adota o caminho da aplicação que startou o Tomcat e passa esse parâmetro para a classe ResourceLoader. Ou alguma configuração no server.xml ou web.xml da minha webapp :?