VRaptor3 - Projeto Limpo

17 respostas
yorgan

Boa noite pessoal,
Estou começando com o VRaptor e estou tentando fazer o projeto em branco disponilizado pela Caelum rodar sobre o Tomcat.
O problema é que não está dando muito certo. Consigo rodar os arquivos JSP’s se eu cria-los na raiz do projeto, contudo o arquivo index.jsp que vem com o projeto não abre de maneira nenhuma.
Acessando http://localhost:8080/vraptortest%% a página fica em branco.
E acessando http://localhost:8080/vraptortest/index.jsp eu recebo erro 404.

Estou colocando o print da estrutura do projeto.

Alguém pode me dar uma luz?

[]'s

Daniel


17 Respostas

Lucas_Cavalcanti

Por padrão o contexto da aplicação é /vraptor-blank-project, você mudou isso?

Não dá pra acessar o index.jsp diretamente, pois ele tá dentro do WEB-INF…

o jeito de acessar é pelo

http://localhost:8080/vraptortest/

mesmo…

deve aparecer uma página toda branca com um “It works!” no meio…

se não funcionar, crie um arquivo chamado log4j.xml dentro da pasta src com esse conteúdo

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
        
        <appender name="stdout" class="org.apache.log4j.ConsoleAppender">
                <layout class="org.apache.log4j.PatternLayout">
                        <param name="ConversionPattern" 
                                value="%d{HH:mm:ss,SSS} %5p [%-20c{1}] %m%n"/>
                </layout>
        </appender>

        <category name="br.com.caelum.vraptor">
	        <priority value="DEBUG" />
	        <appender-ref ref="stdout" />
	    </category>
</log4j:configuration>

e manda o que apareceu no console do tomcat quando você estava acessando essas urls

[]'s

yorgan

Boa noite Lucas,
Então, fiz o que você me passou mas não deu certo.
Colocando apenas http://localhost:8080/vraptortest/ ele continua no erro 404 e mesmo com o arquivo log4j.xml criado o log não alterou em nada.

Seguem também meu web.xml e IndexController:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	id="WebApp_ID" version="2.5">
	<display-name>vraptor-blank-project</display-name>

	<context-param>
        <param-name>br.com.caelum.vraptor.packages</param-name>
        <param-value>br.com.caelum.vraptor.blank</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.html</welcome-file>
	</welcome-file-list>
</web-app>
package br.com.caelum.vraptor.blank;

import br.com.caelum.vraptor.Path;
import br.com.caelum.vraptor.Resource;

@Resource
public class IndexController {

	@Path("/")
	public void index() {
		System.out.println("Entrou");
	}
}

[]'s

Lucas_Cavalcanti

manda o console (log) do tomcat, o que aparece qdo vc sobe o servidor

yorgan

Segue o log:

23/09/2009 08:26:57 org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: .:/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java
23/09/2009 08:26:57 org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-8080
23/09/2009 08:26:57 org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 650 ms
23/09/2009 08:26:57 org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
23/09/2009 08:26:57 org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.20
23/09/2009 08:26:58 org.apache.catalina.core.ApplicationContext log
INFO: ContextListener: contextInitialized()
23/09/2009 08:26:58 org.apache.catalina.core.ApplicationContext log
INFO: SessionListener: contextInitialized()
23/09/2009 08:26:58 org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
23/09/2009 08:26:58 org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
23/09/2009 08:26:58 org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/46  config=null
23/09/2009 08:26:58 org.apache.catalina.startup.Catalina start
INFO: Server startup in 1373 ms

Estou utilizando o plugin Sysdeo e está assim o XML dentro da pasta /conf/Catalina/localhost/

<Context path="vraptortest" reloadable="true" docBase="/Users/danielkist/ Documents/workspace/vraptor-blank-project" workDir="/Users/danielkist/ Documents/workspace/vraptor-blank-project/work" />

[]´s

yorgan

O estranho é que ele só está criando a pasta work quando eu coloco algum JSP diretamente na raiz do projeto.
Isso quer dizer que ele nem está chegando na JSP dentro da pasta WebContent.
O erro então deve estar em algum parametro XML ou coisa do tipo, certo?
Antes de iniciar o tomcat via Sysdeo eu preciso fazer algum build do projeto ou algo para que ele faça algum tipo de configuração para o VRaptor?

[]´s

Lucas_Cavalcanti

o docBase está errado, o certo é o caminho do WebContent:

[]'s

yorgan

Mesmo assim não deu certo.
Eu até criei um arquivo index1.jsp dentro da pasta WebContent para confirmar que o servidor estava buscando lá e deu certo.
Mas se eu deixar somente http://localhost:8080/vraptortest/ ele traz o erro 404.

[]´s

Lucas_Cavalcanti

apareceu algo no log do servidor? manda ae

Lucas_Cavalcanti

tenta mandar as classes compiladas para WebContent/WEB-INF/classes

yorgan

Isso que estou achando estranho, ele não cria a pasta classes e compila a classe IndexController.
E a única coisa que mudou no log foi isso:

log4j:WARN No appenders could be found for logger (br.com.caelum.vraptor.ioc.spring.VRaptorApplicationContext).
log4j:WARN Please initialize the log4j system properly.

[]´s

Lucas_Cavalcanti

coloca aquele log4j.xml que eu te mandei na pasta src, e vê se aparecem os logs do vraptor…

yorgan

Mas eu coloquei ele lá.
Olha como está a estrutura do projeto hoje:


Lucas_Cavalcanti

o problema é que o vraptor-blank-project foi configurado pra usar o WTP…

tenta fazer o seguinte:

botão direito no projeto >> Run As >> Run On Server

daí vc escolhe a versão do seu tomcat, se for o caso cria um Server Runtime, e põe pra rodar…

isso deve funcionar, se você estiver com o WTP no seu eclipse…

Vamos incluir um .classpath e .project pro sysdeo para o próximo release do VRaptor…

yorgan

Valeu Lucas, funcionou!
Mudei para o Server Runtime e ele foi na hora.
A única coisa agora é que o Log está pedindo a configuração do ResourceBundle, mas isso eu acho que é explicado como é configurado na documentação.

11:38:13,362 DEBUG [DefaultResourceTranslator] trying to access /
11:38:13,393 DEBUG [DefaultResourceTranslator] found resource {DefaultResourceMethod: br.com.caelum.vraptor.blank.IndexController.index}
11:38:13,675  WARN [JstlLocalization    ] couldn't find message bundle, creating an empty one
java.util.MissingResourceException: Can't find bundle for base name messages, locale pt_BR
	at java.util.ResourceBundle.throwMissingResourceException(Unknown Source)
	at java.util.ResourceBundle.getBundleImpl(Unknown Source)
	at java.util.ResourceBundle.getBundle(Unknown Source)
	at br.com.caelum.vraptor.core.JstlLocalization.getBundle(JstlLocalization.java:48)
	at br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor.intercept(ParametersInstantiatorInterceptor.java:81)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:57)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:71)
	at br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:54)
	at br.com.caelum.vraptor.core.InstantiatedInterceptorHandler.execute(InstantiatedInterceptorHandler.java:51)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:71)
	at br.com.caelum.vraptor.interceptor.multipart.MultipartInterceptor.intercept(MultipartInterceptor.java:58)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:57)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:71)
	at br.com.caelum.vraptor.interceptor.InterceptorListPriorToExecutionExtractor.intercept(InterceptorListPriorToExecutionExtractor.java:58)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:57)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:71)
	at br.com.caelum.vraptor.core.URLParameterExtractorInterceptor.intercept(URLParameterExtractorInterceptor.java:45)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:57)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:71)
	at br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:70)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:57)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:71)
	at br.com.caelum.vraptor.core.DefaultRequestExecution.execute(DefaultRequestExecution.java:71)
	at br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:99)
	at br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:37)
	at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:97)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
	at java.lang.Thread.run(Unknown Source)
11:38:13,690 DEBUG [AsmBasedTypeCreator ] Trying to make class for IndexController$index$715134878$1
11:38:13,706 DEBUG [AsmBasedTypeCreator ] Parameter names found for creating type are: []
11:38:13,706 DEBUG [AsmBasedTypeCreator ] Methods: []
11:38:13,706 DEBUG [AsmBasedTypeCreator ] Fields: []
11:38:13,706 DEBUG [CacheBasedTypeCreator] cached generic type for method {DefaultResourceMethod: br.com.caelum.vraptor.blank.IndexController.index}
11:38:13,737 DEBUG [ParametersInstantiatorInterceptor] Parameter values for {DefaultResourceMethod: br.com.caelum.vraptor.blank.IndexController.index} are []
Entrou
11:38:13,846 DEBUG [DefaultStaticContentHandler] deferring URI to container: /vraptor-blank-project/WEB-INF/jsp/index/index.jsp

Obrigado pela ajuda.

[]´s

Daniel

Paulo_Silveira

Talvez seja legal criar uma documentacao “como rodar o blank project no Eclipse”

yorgan

Aham, eu já estava pensando nisso.
Hoje a noite vou fazer um screencast e postar no youtube, mas claro que gostaria de permissão de vocês para isso.

[]´s

Daniel

Paulo_Silveira

yorgan:
Aham, eu já estava pensando nisso.
Hoje a noite vou fazer um screencast e postar no youtube, mas claro que gostaria de permissão de vocês para isso.

[]´s

Daniel

mais que permitido! louvavel!

Criado 22 de setembro de 2009
Ultima resposta 23 de set. de 2009
Respostas 17
Participantes 3