[Resolvido]Problema VRaptor

Pessoal , estou estudando VRaptor pela apostila da Caelum.

Porém estou com problemas em um simples Hello World.

http://localhost:8080/goodbuy2/mundo/boasVindas

ao acessar esta URL ,era para imprimir no Console Bem Vindo, mas nao esta ocorrendo.

Aliás , goodbuy2 é o nome do projeto, mas ja tentei sem o 2 e nada.

Segue o Código da classe, os Jars do VRaptor/Spring ja estão dentro da lib.

[code]package br.com.caelum.goodbuy;

import br.com.caelum.vraptor.Resource;

@Resource
public class Mundo {

public void boasVindas(){
	
	System.out.println("Bem Vindo");
}

}
[/code]

Acho que o seu controller precisa do sufixo “Controller” pra funcionar.
Exemplo: MundoController
Creio que já funcione assim.

Creio que nao amigo , pois a apostila pede para fazer deste modo…realmente achei estranho nao funcionar.

não precisa do controller…

você colocou o filtro do vraptor no web.xml?

colocou os jars do vraptor em WebContent/WEB-INF/lib?

Sim amigo os jars estao la, vieram junto com a apostila

Meu web.xml

Tentei fazer uma viewer simples e tambem nao foi.

Tem alguma coisa a ver por eu usar Tomcat 7?

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

goodbuy

index.html
index.htm
index.jsp
default.html
default.htm
default.jsp

<!-- pacote do nosso projeto -->
<context-param>
	<param-name>br.com.caelum.vraptor.packages</param-name>
	<param-value>br.com.caelum.goodbuy</param-value>
</context-param>

<!-- configura o controlador do VRaptor -->
<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>

[/code]

não precisa do packages…

copia esse arquivo pra sua pasta src:

e veja se aparecem logs do vraptor no console

Segue o que foi gerado no console…alem da inicializacao padrao do tomcat.

15:14:15,000 INFO [BasicConfiguration ] Using class br.com.caelum.vraptor.ioc.spring.SpringProvider as Container Provider 15:14:15,019 INFO [DefaultSpringLocator] No application context found 15:14:15,073 INFO [WebAppBootstrapFactory] No static WebAppBootstrap found. 15:14:15,073 INFO [BasicConfiguration ] br.com.caelum.vraptor.scanning = null 15:14:15,321 INFO [AnnotationConfigWebApplicationContext] Refreshing Root WebApplicationContext: startup date [Tue Mar 27 15:14:15 BRT 2012]; root of context hierarchy 15:14:15,752 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:14:15,895 INFO [DefaultListableBeanFactory] Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@7befc208: defining beans [org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,defaultResourceTranslator,encodingHandlerFactory,objenesisProxifier,JSR303ValidatorFactory,interceptorListPriorToExecutionExtractor,defaultRestDefaults,topologicalSortedInterceptorRegistry,defaultInterceptorHandlerFactory,hibernateProxyInitializer,validatorFactoryCreator,noRoutesConfiguration,paranamerNameProvider,XStreamXMLDeserializer,defaultRouter,defaultMethodNotAllowedHandler,defaultAcceptHeaderToFormat,defaultDeserializers,defaultTypeNameExtractor,defaultTypeFinder,defaultMultipartConfig,pathAnnotationRoutesParser,defaultConverters,defaultResourceNotFoundHandler,defaultRoutes,messageInterpolatorFactory,stereotypeHandler,converterHandler,interceptorStereotypeHandler,deserializesHandler,stereotypedBeansRegistrar,defaultSpringLocator,instantiateInterceptor,defaultPathResolver,emptyElementsRemoval,deserializingInterceptor,XStreamXMLSerialization,defaultRestHeadersHandler,defaultValidator,HTMLSerialization,defaultExceptionMapper,defaultRepresentationResult,emptyResult,defaultServletFileUploadCreator,downloadInterceptor,defaultPageResult,defaultMethodInfo,XStreamJSONPSerialization,XStreamJSONSerialization,defaultResult,JSR303Validator,forwardToDefaultViewInterceptor,defaultFormatResolver,jstlLocalization,ognlParametersProvider,exceptionHandlerInterceptor,commonsUploadMultipartInterceptor,resourceLookupInterceptor,flashInterceptor,replicatorOutjector,defaultValidationViewsFactory,parametersInstantiatorInterceptor,defaultStatus,defaultLogicResult,outjectResult,executeMethodInterceptor,defaultHttpResult,jsonDeserializer,applicationConfiguration,defaultRefererResult,characterConverter,uploadedFileConverter,localeBasedCalendarConverter,longConverter,primitiveShortConverter,integerConverter,doubleConverter,primitiveLongConverter,primitiveFloatConverter,primitiveByteConverter,localeBasedDateConverter,bigIntegerConverter,booleanConverter,primitiveDoubleConverter,primitiveIntConverter,byteConverter,enumConverter,shortConverter,floatConverter,primitiveBooleanConverter,stringConverter,bigDecimalConverter,primitiveCharConverter,VRaptorRequestProvider,httpServletRequestProvider,httpServletResponseProvider,httpSessionProvider,enhancedRequestExecution,defaultInterceptorStack,org.springframework.aop.config.internalAutoProxyCreator,mundo]; root of factory hierarchy 15:14:16,120 INFO [DefaultConverters ] Registering bundled converters 15:14:16,250 INFO [DefaultRouteBuilder ] /mundo/boasVindas [ALL] -> Mundo.boasVindas() 15:14:16,252 INFO [VRaptor ] VRaptor 3.3.1 successfuly initialized

ele registrou a rota… deve ser a url que vc tá chamando no browser…

se vc tá usando eclipse, tenta ver qual é o contexto que está deployado (botão direito no projeto, properties, Web Project Settings, context root)

GoodBuy2 o context.

Logo estou tentando chamar atraves desta url

http://localhost:8080/goodbuy2/mundo/boasVindas

Tem ctz que nao preciso usar o Sufixo Controller?

não precisa do sufixo controller…

se o context tá GoodBuy2, a url tem que estar GoodBuy2:

http://localhost:8080/GoodBuy2/mundo/boasVindas

http://localhost:8080/GoodBuy/mundo/boasVindas

Eu Refatorei e mudei o nome para GoodBuy , o context agora esta GoodBuy, e mesmo acessando a url a cima ele nao chama o metodo e nao escreve nada no console.

É muito tenso isto , pois a classe é muito simples , o web.xml foi disponibilizado ai e creio que nao exista nenhum erro…os jars estao todos no projeto…realmente perdi a tarde em cima disto =/.

PS: Cheguei até a adicionar o Sufixo Controller para ver se ia e nada…

Pode ser algum problema por usar TomCat 7?

Resolvido, era necessário retirar as ultimas linhas do web.xml…

Muito obrigado a todos que me ajudaram o/