Configuração VRaptor apostila FJ-28

Olá colegas,
estou atualmente tentando aprender o framework VRaptor e estou há alguns dias parado porque não consigo configurar de acordo com a apostila. Estava antes tentando fazer o exercicio 16.9 da apostila FJ-21 como indica neste http://www.guj.com.br/java/293347-fj21-vraptor-arquivo-controle-produtoszip . Sendo que não tenho o arquivo controle-produtos.zip e não dei continuidade.
Baixei a apostila FJ-28 VRaptor+hibernate+ ajax e já de inicio apresento dúvidas.
Bem eu baixei os arquivos:
vraptor-3, vraptor-blank-project-3, vraptor-blank-project-gae-3, vraptor-mydvds-3. Em https://code.google.com/p/vraptor3/downloads/list

Na apostila indica baixa o baixar do site do VRaptor o vraptor-blank-project, descompacta-lo e importá-lo no Eclipse e depois disso, adicionar, dentro da pasta WebContent o conteúdo do zip que contém cabeçalho, rodapé, css e javascript básicos que usaremos durante o projeto. Você pode baixar em:
http://www.caelum.com.br/download/caelum-java-web-vraptor-hibernate-ajax-fj28-auxiliar.zip

Segundo a apostila diz para importar esse projeto auxiliar para WebContent. Eu fiz isso sendo que vejo no tutorial que na hora de adicionar no servidor não existe esse projeto goodbuy para adicionar no servidor. Mesmo assim eu adicionei o vraptor-blank-project-3 no servidor apache 6.

eu já testei os links :

http://localhost:8080/vraptor-blank-project-3/index.jsp
http://localhost:8080/goodbuy

e me dá erro Estado HTTP 404 - /goodbuy

Console:

feb 14, 2013 3:13:03 PM org.apache.catalina.core.AprLifecycleListener init
INFO: La biblioteca nativa de Apache Tomcat basada en ARP que permite un rendimiento ?ptimo en entornos de desarrollo no ha sido hallada en java.library.path: /Users/romenig/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.
feb 14, 2013 3:13:03 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:vraptor-blank-project-3' did not find a matching property.
feb 14, 2013 3:13:03 PM org.apache.coyote.http11.Http11Protocol init
INFO: Inicializando Coyote HTTP/1.1 en puerto http-8080
feb 14, 2013 3:13:03 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 480 ms
feb 14, 2013 3:13:03 PM org.apache.catalina.core.StandardService start
INFO: Arrancando servicio Catalina
feb 14, 2013 3:13:03 PM org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.36
15:13:03,872  INFO [BasicConfiguration  ] Using class br.com.caelum.vraptor.ioc.spring.SpringProvider as Container Provider
15:13:03,886  INFO [DefaultSpringLocator] No application context found
15:13:03,928  INFO [BasicConfiguration  ] br.com.caelum.vraptor.scanning = null
15:13:03,928  INFO [WebAppBootstrapFactory] Dynamic WebAppBootstrap found.
15:13:04,037  INFO [AnnotationConfigWebApplicationContext] Refreshing Root WebApplicationContext: startup date [Thu Feb 14 15:13:04 CET 2013]; root of context hierarchy
15:13:04,194  WARN [BaseComponents      ] There is neither commons-fileupload nor servlet3 handlers registered. If you are willing to upload a file, please add the commons-fileupload in your classpath or use a Servlet 3 Container
15:13:04,246  INFO [DefaultListableBeanFactory] Overriding bean definition for bean 'org.springframework.context.annotation.internalAutowiredAnnotationProcessor': replacing [Root bean: class [org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null] with [Root bean: class [br.com.caelum.vraptor.ioc.spring.InjectionBeanPostProcessor]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null]
15:13:04,332  INFO [DefaultListableBeanFactory] Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@2db9ab7a: defining beans [org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,defaultResourceTranslator,XStreamConverters.NullConverter,objenesisInstanceCreator,interceptorListPriorToExecutionExtractor,defaultTypeFinder,nullProxyInitializer,pathAnnotationRoutesParser,cglibProxifier,paranamerNameProvider,defaultStaticContentHandler,defaultTypeNameExtractor,javaEvaluator,topologicalSortedInterceptorRegistry,encodingHandlerFactory,defaultInterceptorHandlerFactory,defaultRouter,noRoutesConfiguration,defaultConverters,defaultAcceptHeaderToFormat,defaultRoutes,defaultMethodNotAllowedHandler,defaultDeserializers,defaultResourceNotFoundHandler,defaultRestDefaults,defaultMultipartConfig,stereotypeHandler,converterHandler,interceptorStereotypeHandler,deserializesHandler,stereotypedBeansRegistrar,defaultSpringLocator,emptyResult,forwardToDefaultViewInterceptor,jstlLocalization,sessionFlashScope,exceptionHandlerInterceptor,resourceLookupInterceptor,XStreamJSONPSerialization,applicationConfiguration,flashInterceptor,jsonDeserializer,defaultRepresentationResult,outjectResult,defaultResult,XStreamConverters,replicatorOutjector,parametersInstantiatorInterceptor,defaultMethodInfo,nullMultipartInterceptor,defaultFormatResolver,VRaptorParameterNamesProvider,nullBeanValidator,instantiateInterceptor,VRaptorDependencyProvider,VRaptorInstantiator,defaultStatus,XStreamJSONSerialization,XStreamXMLDeserializer,downloadInterceptor,defaultPageResult,XStreamXMLSerialization,deserializingInterceptor,iogiParametersProvider,defaultValidationViewsFactory,messageConverter,defaultLogicResult,defaultValidator,defaultHttpResult,defaultRestHeadersHandler,HTMLSerialization,defaultRefererResult,executeMethodInterceptor,defaultExceptionMapper,defaultPathResolver,primitiveByteConverter,enumConverter,primitiveLongConverter,primitiveDoubleConverter,localeBasedDateConverter,shortConverter,primitiveShortConverter,primitiveCharConverter,characterConverter,integerConverter,byteConverter,bigIntegerConverter,booleanConverter,stringConverter,primitiveIntConverter,doubleConverter,longConverter,primitiveBooleanConverter,localeBasedCalendarConverter,floatConverter,uploadedFileConverter,bigDecimalConverter,primitiveFloatConverter,VRaptorRequestProvider,httpServletRequestProvider,httpServletResponseProvider,httpSessionProvider,enhancedRequestExecution,XStreamBuilderImpl,defaultInterceptorStack,org.springframework.aop.config.internalAutoProxyCreator,indexController]; root of factory hierarchy
15:13:04,441  INFO [DefaultConverters   ] Registering bundled converters
15:13:04,480  INFO [LinkToHandler       ] Registering linkTo component
15:13:04,563  INFO [DefaultRouteBuilder ] /                                                 [ALL] -> IndexController.index()
15:13:04,570  INFO [VRaptor             ] VRaptor 3.4.1 successfuly initialized
feb 14, 2013 3:13:04 PM org.apache.catalina.startup.HostConfig deployDescriptor
INFO: Desplieque del descriptor de configuraci?n host-manager.xml
feb 14, 2013 3:13:04 PM org.apache.catalina.startup.HostConfig deployDescriptor
INFO: Desplieque del descriptor de configuraci?n manager.xml
feb 14, 2013 3:13:04 PM org.apache.catalina.startup.HostConfig deployWAR
INFO: Despliegue del archivo tarefas.war de la aplicaci?n web
log4j:WARN No appenders could be found for logger (org.springframework.web.context.support.StandardServletEnvironment).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
feb 14, 2013 3:13:04 PM org.apache.catalina.core.ApplicationContext log
INFO: Initializing Spring FrameworkServlet 'springmvc'
feb 14, 2013 3:13:05 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Despliegue del directorio docs de la aplicaci?n web
feb 14, 2013 3:13:05 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Despliegue del directorio examples de la aplicaci?n web
feb 14, 2013 3:13:05 PM org.apache.catalina.core.ApplicationContext log
INFO: ContextListener: contextInitialized()
feb 14, 2013 3:13:05 PM org.apache.catalina.core.ApplicationContext log
INFO: SessionListener: contextInitialized()
feb 14, 2013 3:13:05 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Despliegue del directorio ROOT de la aplicaci?n web
feb 14, 2013 3:13:05 PM org.apache.coyote.http11.Http11Protocol start
INFO: Arrancando Coyote HTTP/1.1 en puerto http-8080
feb 14, 2013 3:13:05 PM org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
feb 14, 2013 3:13:05 PM org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/17  config=null
feb 14, 2013 3:13:05 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 2523 ms

Não tenho idéia do que esta passando, quero muito avançar nos estudos, estou uns 3 dias parado por isso e não quero perder tempo!
Alguém pode me ajudar em esclarecer meu problema, por favor! O que devo fazer?


Tente com a barra:

http://localhost:8080/goodbuy/

e teste se servidor subiu mesmo veja se abre a pagina do tomcat em

http://localhost:8080

Abraços!

o nome do seu contexto raiz ta assim
vraptor-blank-project-3

então vc teria que chamar no browser assim

localhost:8080/vraptor-blank-project-3

Não me funciona este: http://localhost:8080/goodbuy/
e o servidor apache funciona sim, además quando coloco: http://localhost:8080/vraptor-blank-project/
me apresenta que funciona com a seguinte mensagem: It works!! VRaptor! /vraptor-blank-project/

Só para constar eu apaguei o projeto anterior e importei o vraptor-blank-project-3 e o renomeei para vraptor-blank-project. Copiei os arquivos (footer.jspf, goodbuy.cs, header.jspf, index.html, pasta(javascripts)) da pasta caelum-java-web-vraptor-hibernate-ajax-fj28-auxiliar.

no arquivo web.xml eu copiei o único comando diferente dos arquivos web.xml entre o projeto vraptor-blank-project e o caelum-java-web-vraptor-hibernate-ajax-fj28-auxiliar:

[quote]<jsp-config>
	<jsp-property-group>
		<description>goodbuy</description>
		<display-name>Good Buy</display-name>
		<url-pattern>*.jsp</url-pattern>
		<include-prelude>/header.jspf</include-prelude>
		<include-coda>/footer.jspf</include-coda>
	</jsp-property-group>
</jsp-config>[/quote]

web.xml do projeto vraptor-blank-project

<?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>goodbuy</display-name>

	<!--
		VRaptor will scan classpath for all @Component and 
		@Resource inside WEB-INF/classes

		If you want to load them also from WEB-INF/lib/ jars, 
		you need to specify from which packages they will
		be loaded, comma separated:
	-->
	
	<!-- 
	<context-param>
        	<param-name>br.com.caelum.vraptor.packages</param-name>
	        <param-value>br.com.caelum.vraptor.blank</param-value>
    </context-param>
     -->
    
	<!--  
	   if you are using a servlet 3.0 container 
		as glassfish 3 or jetty 8, you dont need this
		filter configuration 
	-->
		
	<!-- <context-param>
        	<param-name>br.com.caelum.vraptor.provider</param-name>
	        <param-value>br.com.caelum.vraptor.ioc.guice.GuiceProvider</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>
	
	<jsp-config>
		<jsp-property-group>
			<description>goodbuy</description>
			<display-name>Good Buy</display-name>
			<url-pattern>*.jsp</url-pattern>
			<include-prelude>/header.jspf</include-prelude>
			<include-coda>/footer.jspf</include-coda>
		</jsp-property-group>
	</jsp-config>
	
</web-app>


Olá Danilo, eu tinha modificado o nome do projeto para goodbuy mas nao funcionava de jeito nenhum tb…
Obrigado aos dois!

Mas a página goodbuy com o cabeçalho e rodapé como indica na apostila não vai de jeito nenhum.

sobre este post aqui eu solucionei com ajuda de Danilo que me enviou o arquivo goodbuy2.zip
Muito Obrigado Danilo!

Oi pessoal.
Estou com problemas com vraptor também. O Mesmo…
Teria como alguem me enviar esse goodbuy2.zip??
Vai me ajudar bastante. Obrigado!

disponibilizei um link pra baixar o arquivo na minha assinatura

Valeu… Muito Obrigado!

Estava com o mesmo problema, estudos parados a 5 dias. O arquivo resolveu.
Muito obrigado!

O arquivo “goodbuy2” funcionou beleza, mas gostaria de saber como acrescentar o código no projeto “vraptor-blank-project-3.5.3” seguindo sua hierarquia de diretórios. No projeto “goodbuy2” existem algumas diferenças.
Se alguém souber como fazer isso seria de grande ajuda no meu aprendizado.
Muito obrigado!!!

Teoricamente é só importar o blank project no eclipse e depois fazer (no eclipse):

Botão direito no Projeto >> import >> archive file >> seleciona o goodbuy.zip

Arquivo goodbuy2.zip -> fiz o download, descompactei e importei o projeto com sucesso. Executei o projeto e deu tudo certo, ou seja, apareceu a frase “Bem vindo ao Goodbuy!” e todo o CSS funcionou, assim como na imagem de exemplo da apostila.

Arquivo “vraptor-blank-project-3.5.3.zip” -> fiz o download, descompactei e importei o projeto com sucesso. Executei o projeto e deu tudo certo aparecendo a frase “It works!! VRaptor! /vraptor-blank-project/”.

Arquivo “caelum-java-web-vraptor-hibernate-ajax-fj28-auxiliar.zip” -> fiz o download e descompactei. Contém cabeçalho, rodapé, css e javascript básicos que será usado durante o projeto da apostila.

Problema -> não consigo acrescentar o código do auxiliar.zip que contém o cabeçalho, rodapé, css e javascript básicos no blank-project de forma que ao executá-lo ele apresente a mesma saída do projeto goodbuy2. Existem diferenças na estrutura de diretórios do goodbuy2 e do blank-project. No projeto goodbuy2 o arquivo index.jsp está em goodbuy2/WebContent/index.jsp, já no projeto vraptor-blank-project o arquivo index.jsp está em vraptor-blank-project/WebContent/WEB-INF/jsp/index/index.jsp. Segundo a apostila é para acrescentar o código do arquivo auxiliar.zip dentro da pasta WebContent do vraptor-blank-project. Coloquei os arquivos e modifiquei o arquivo web.xml do vraptor-blank-project acrescentando a parte diferente que aparece no web.xml do arquivo auxiliar.zip. Quando executei deu o seguinte erro: HTTP Status 500 - /WEB-INF/jsp/index/index.jsp raised an exception. Tentei retirar o index.jsp de vraptor-blank-project/WebContent/WEB-INF/jsp/index/index.jsp e colocá-lo em vraptor-blank-project/WebContent/index.jsp, mas quando executei deu o erro 404, pois o VRaptor continuou procurando o arquivo index.jsp em vraptor-blank-project/WebContent/WEB-INF/jsp/index/. Como ainda não conheço o VRaptor não estou conseguindo arrumar esse erro.
Se alguém souber vai ajudar de mais.
Valeu pela resposta Lucas.

tem alguma stacktrace junto com esse erro 500?

Parou de dar o erro 500.
Melhorando a pergunta: Consegui fazer o deploy do “vraptor-blank-project”.
Fiz o download do “caelum-java-web-vraptor-hibernate-ajax-fj28-auxiliar.zip”.
Aonde eu coloco os arquivos do .zip no blank-project???

no projeto, vc pode fazer um import > archive file e apontar pra esse arquivo (isso no eclipse)

Consegui resolver o problema.
No stacktrace mostrava o problema. Estava faltando o jstl.jar.
Porém me surgiu uma dúvida. O cabeçalho e rodapé fica em todas as minhas páginas, mas tem algumas páginas que eu preciso usar um cabeçalho e rodapé diferentes. Como eu resolvo isso?

Valeu Lucas Cavalcanti!

Vai ter que criar outro cabeçalho e rodapé, tipo “cabecalho2” e chama-lo nas paginas adequadas.
Da uma olhada na FJ-21.

A questão é: como vou chama-lo nas páginas adequadas?