Estou criando um projeto VRaptor do zero utilizando Maven.
O que fiz foi criar um Dynamic Web Project no Eclipse (Servlet 2.5), e então converti o projeto para um projeto Maven (right click > Configure > Convert to Maven Project) e adicionei as dependências.
Fiz também algumas configurações no Deployment Assembly, para jogar as dependências do Maven no diretório WEB-INF/lib.
Subo o servidor, e a aplicação é devidamente startada (vejo pelos logs que tudo sobe como deveria).
Mas ao acessá-la (localhost:8080/minha-app), recebo um 404 na face.
Já gastei bastante tempo tentando entender o que se passa, mas não consigo ver o erro.
Pelo log sei que o VRaptor está sendo carregado, mas não consigo acessar a aplicação.
se vc está criando novo pq vc jah não cria um “maven project”?
cria um simple project no maven e depois vai em properties do projeto… vai no módulo “project facets” click em “convert to faceted…” e marca a opcao “Dynamic Web Module 3”
feito isso vai aparecer uma msg de “mais configuracoes disponíveis” clicando vai aparecer a opcao de alterar o content directory, ao invés de webcontent muda para /src/main/webapp
clica em ok.
depois abre o properties do projeto novamente e agora vai no módulo “deployment assembly” clique em add e depois clique em java build path entries e escolha a opcao maven dependência
pronto configurado! depois soh add as dependencias necessárias
Segui este caminho pois estou mais acostumado com a estrutura de pastas do projeto criado pelo Eclipse (com o conteúdo todo dentro de WebContent).
Como não encontrei nenhum archetype equivalente, fiz isso que falei: criei o projeto normalmente, e então o converti para um Maven Project.
Claro, que se não conseguir nenhuma solução, serei obrigado a criar o projeto direto pelo Maven. Mas por ora estou tentando descobrir a causa do problema e como solucioná-lo.
Assim que chegar em casa posto as configs e a estrutura do projeto.
Cara, não vou te afirmar pq sempre tem um cara q sabe fazer isso!
mas pela lógica não tem como…
a sua pastinha lib ficara vazia em um projeto maven!
os jars que vão aparecer na sua aplicação será gerenciada pelo maven… e isso terá que ser configurado no pom.xml
ele que vai baixar as libs(jars) necessárias
o eclipse não consegue fazer essa conversão…
Fato é que a aplicação sobe. Vejo pelos logs que ao menos o startup dela rola normalmente.
Por isso acho que é algum detalhe que está faltando. Mas acho que rola sim!
Mas então, até onde sei o maven não usa uma “convenção” de estrutura de pasta.
Elas (as estruturas) são definidas pelos archetypes.
Em aplicações web “padrão” geralmente é utilizado o archetype “maven-archetype-webapp”, que possui a estrutura de pastas que estou evitando ("/src/main/webapp").
Como não conheço um archetype que possua a estrutura que desejo (/WebContent), resolvi utilizar esta abordagem que citei: criei um Dynamic Web Project, e o converti para um maven project.
Assim, o maven passa a gerenciar minhas dependências, e eu mantenho a estrutura que desejo.
Então, quando estudei sobre o maven… eu lembro de ter lido que o Maven define um padrão para a estrutura de diretórios no projeto, agora não sei se a fonte era confiável…
Fiz isso e minhas JSPs passaram a ser renderizadas! :thumbup:
Agora tenho meu projeto VRaptor gerenciado pelo Maven, com a estrutura de pastas padrão de um Dynamic Web Project do Eclipse! Sucesso!! :thumbup: :thumbup: :thumbup: