Vraptor3 - com web.xml Tomcat "not available" - sem web.xml abre normalmente

7 respostas
alexanderff

Olá.

Estou tentando iniciar com o Vraptor (especificamente com o Vraptor3).

Constatei agora que quando uso as configurações do Vraptor no web.xml o Tomcat retorna:

The requested resource () is not available.

Mas quando tem só as configurações básicas (nome e welcome-file), ele abre a página do projeto normalmente.

Alguém pode ajudar? Alguém imagina o que pode ser?

O Vraptor está instalado corretamente (ao menos o autocomplete do Netbeans resolve o @Resource na hora de escrevê-lo).

Seque o web.xml

[]
Alex

<?xml version="1.0" encoding="UTF-8"?>


enlouquecendo2

<context-param>
        <param-name>br.com.caelum.vraptor.packages</param-name>

        <!-- Change this parameter to your app base package -->
        <param-value>com.testes.enlouquecendo2</param-value>
   </context-param>

<filter>
	<filter-name>vraptor</filter-name>
	<filter-class>br.com.caelum.vraptor.VRaptor</filter-class>
</filter>

<filter-mapping>
	<filter-name>vraptor</filter-name>
	<url-pattern>/*</url-pattern>
	<dispatcher>FORWARD</dispatcher>
	<dispatcher>REQUEST</dispatcher>
</filter-mapping>

<welcome-file-list>
	<welcome-file>index.jsp</welcome-file>
</welcome-file-list>

7 Respostas

alexanderff

Não resolvi, mas já pude identificar que o problema está aqui (se eu tiro todo esse trecho o Tomcat responde normalmente):

vraptor br.com.caelum.vraptor.VRaptor vraptor /* FORWARD REQUEST

[]s
Alex

G

alexanderff, aparece alguma mensagem nos logs?

O que acontece quando você remove esse filter do vraptor e funciona é porque assim o vraptor não sobe, ou seja, o erro parece ser na inicialização do vraptor. O conselho que te dou é limpar os jars do WEB-INF/lib e colocar os que estão dentro do vraptor-blank da mesma versão do vraptor que você possui.

Verifique também uma forma de habilitar os logs na sua aplicação. Você tem isso habilitado? Sabe como fazer para habilitar?

Abraços

alexanderff

alexanderff, aparece alguma mensagem nos logs?

Não. No Netbeans tá tudo ok, nenhuma mensagem de erro quando executo o build.

No Tomcat também nenhum erro.

Verifique também uma forma de habilitar os logs na sua aplicação. Você tem isso habilitado? Sabe como fazer para habilitar?

Tentei ver como aumentar o nível de debug. Alterei o partâmetro “debug” do arquivo de contexto do Tomcat para o meu projeto. Coloquei o valor 9, mas continuou sem mensagens de erro. Frustrante.

Refiz agora há pouco todo o projeto, do zero. E continuo com o mesmo problema.

O surreal é que estou usando o Maven…

Segui os passos desse link:

http://www.lucas.hgt.nom.br/wordpress/?p=107

Apenas troquei a versão para 3.0.2 em todos os parâmetros.

Usando o maven + netbeans + vraptor, pensei que não teria como ter problemas… :slight_smile:

O que acontece quando você remove esse filter do vraptor e funciona é porque assim o vraptor não sobe, ou seja, o erro parece ser na inicialização do vraptor. O
conselho que te dou é limpar os jars do WEB-INF/lib e colocar os que estão dentro do vraptor-blank da mesma versão do vraptor que você possui.

Vou tentar o que você sugeriu. Foi a melhor dica até agora.

Faz sentido que, usando o xml da dica de instalação com o Maven, mas trocando apenas a versão do VRaptor, alguma dependência do VRaptor possa estar numa versão incompatível.

EPA! Resolvi testar com o Jetty agora… ao menos consegui acessar o projeto (SEM qualquer código usando VRaptor) apenas o index.html mesmo.

Bom, tá muito sofrimento isso tudo.

Vou me jogar num canto da sala e ficar chorando por duas horas, depois, com calma eu continuo.

Se eu conseguir eu posto aqui a “solução”.

[]
Alex

alexanderff

Opa, antes de começar a chorar, descobri que o Jetty me mostra os erros:

Olha que beleza:

"
Problem accessing /enlouquecendo3/usuario.adiciona.logic. Reason:

com/google/common/collect/Collections2

"

Já tenho uma migalha para seguir.

Parece que era mesmo o que você disse sobre o carregamento do VRaptor.

Ok então, vou vomitar de nervoso agora e continuo daqui a alguns minutos.

[]
Alex

G

alexanderff, o log que me refiro é o log4j ou qualquer outra implementação compatível com os logs do vraptor, leia mais aqui: http://www.slf4j.org/manual.html. O Vraptor3 usa o SLF4J como fachada de logging, que conta com uma série de adapters para usar como backend o log4j, java utils logging, etc.

Nunca usei o maven para fazer build, então não sei muito como ajudar nesse caso. Isso o Lucas, que é desenvolvedor do vrator pode responder melhor. Pergunto então se você precisa mesmo usar maven ou pode usar a forma manual, e na minha visão mais simples, que é usar o blank-project disponibilizado. Acho que ele está inclusive preparado para o netbeans, embora nada te impede de adicionar manualmente os arquivos na IDE de sua preferencia.

Quanto a lib com/google/common/collect/Collections2 você precisa do jar google-collections que está nas libs disponibilizadas do vraptor. Dê uma olhada lá que tem uma documentação sobre as libs obrigatórias (required libs) e as opcionais.

Abs

alexanderff

Ok, segue um roteiro passo-a-passo e me digam, pelo amor de deus, o que estou fazendo de errado:

Fui no Netbeans e importei o projeto vraptor-blank.

Aí quando fui “botão direito -> Construir”, ele deu problema porque não estava encontrando o vraptor-core/lib/optional.

Mas eu consegui contornar (criei o diretório, copiei as bibliotecas). Nada na mão, só arrumei para a importação encontrar as coisas que queria no lugar que queria, ok?

Executei de novo os passos acima e a importanção foi 100% sem erro e consegui ‘Construir’ o projeto.

Fui no Tomcat (afinal desisti por enquanto do Maven/Jetty - para tentar chegar em algum lugar) e dentro de /conf/Catalina/localhost criei um vraptor-blank-project.xml com o seguinte conteúdo:

<?xml version="1.0" encoding="UTF-8"?>
<Context antiJARLocking="true" docBase="/home/alex/Dropbox/java/vraptor-blank-project/WebContent/WEB-INF" path="/vraptor-blank-project"/>

Reiniciei o Tomcat e acessei:

http://localhost:8080/vraptor-blank-project

Apareceu “It works!”

Tá.

Daí fui, pelo Netbeans, até src/br.com.caelum.vraptor.blank

Criei uma nova classe java lá dentro com o seguinte conteúdo:

package br.com.caelum.vraptor.blank;
import br.com.caelum.vraptor.Resource;

@Resource
public class UsuarioLogic {
    public void adiciona() {
        System.out.println("oi");
    }
}

Daí tentei os seguintes endereços:

http://localhost:8080/usuario/adiciona
http://localhost:8080/usuario.adiciona.logic

A resposta do Tomcat é um belo 404.

Editei então o web.xml para:

<filter-mapping>
		<filter-name>vraptor</filter-name>
		<url-pattern>*.logic</url-pattern>
		<dispatcher>FORWARD</dispatcher>
		<dispatcher>REQUEST</dispatcher>
	</filter-mapping>

Tentei aqueles endereços e continuei com um 404.

Detalhe: não alterei absolutamente mais nada no web.xml.

Fui então criar o src/usuario/adiciona.ok.jsp

O arquivo só tem um ‘oi’ escrito.

Tentei os mesmos endereços, e… e… 404!!

Me parece que estou fazendo algo de uma imbecilidade indizível, chego estar constrangido em detalhar tanto o que estou fazendo…

Mas… não sei mais o que fazer.

Alguém pode dar uma luz

Ah! Sim, eu criei o log4j.xml e coloquei tanto na raíz do projeto quanto no diretório src.

Reiniciei o Tomcat.

Os logs não mudara, ou seja, não tem log.

[]
Alex

Lucas_Cavalcanti

olá alexanderff…

o primeiro projeto não deve ter dado certo por algum problema com o maven mesmo…

já foi submetido pro vraptor entrar pro repositorio oficial do Maven, mas você pode tentar usar esse repositório por enquanto
http://maven.caelum.com.br/
(tem uma tag repositories que vc pode colocar no pom.xml)

o segundo não está funcionando por causa das convenções:

  • Não é mais Logic o sufixos das lógicas, é Controller:
@Resource  
public class UsuarioController {  
    public void adiciona() {  
        System.out.println("oi");  
    }  
}

e a url para esse método é:
http://localhost:8080//usuario/adiciona

e vai para o jsp que está em
/WEB-INF/jsp/usuario/adiciona.jsp

testa assim, que deve dar certo

PS: mande suas dúvidas sobre o VRaptor, por favor, nesse forum do guj: http://guj.com.br/forums/show/23.java
que é especializado em frameworks brasileiros…

Criado 19 de novembro de 2009
Ultima resposta 20 de nov. de 2009
Respostas 7
Participantes 3