Erro ao usar LAZY Dependency Injection do CookBook

Não entendi este erro. Alguem sabe qual é o problema!

[code]Mar 01, 2012 9:31:39 AM org.apache.catalina.core.ApplicationContext log
Grave: Unhandled exception occurred whilst decorating page
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘loginController’: Unsatisfied dependency expressed through constructor argument with index 1 of type [br.ufpi.repositories.UsuarioRepository]: : Error creating bean with name ‘usuarioRepositoryImpl’: Unsatisfied dependency expressed through constructor argument with index 0 of type [org.hibernate.Session]: : No unique bean of type [org.hibernate.Session] is defined: expected single matching bean but found 2: [br.com.caelum.vraptor.util.hibernate.SessionCreator, br.ufpi.componets.vraptor.JITSessionCreator]; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [org.hibernate.Session] is defined: expected single matching bean but found 2: [br.com.caelum.vraptor.util.hibernate.SessionCreator, br.ufpi.componets.vraptor.JITSessionCreator]; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘usuarioRepositoryImpl’: Unsatisfied dependency expressed through constructor argument with index 0 of type [org.hibernate.Session]: : No unique bean of type [org.hibernate.Session] is defined: expected single matching bean but found 2: [br.com.caelum.vraptor.util.hibernate.SessionCreator, br.ufpi.componets.vraptor.JITSessionCreator]; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [org.hibernate.Session] is defined: expected single matching bean but found 2: [br.com.caelum.vraptor.util.hibernate.SessionCreator, br.ufpi.componets.vraptor.JITSessionCreator]
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:730)
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:196)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1003)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:907)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:485)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$2.getObject(AbstractBeanFactory.java:329)
at org.springframework.web.context.request.AbstractRequestAttributesScope.get(AbstractRequestAttributesScope.java:43)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:325)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:263)
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1083)
at br.com.caelum.vraptor.ioc.spring.SpringBasedContainer.instanceFor(SpringBasedContainer.java:86)
at br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:46)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
at br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor.intercept(ExceptionHandlerInterceptor.java:71)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
at br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:69)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
at br.com.caelum.vraptor.core.EnhancedRequestExecution.execute(EnhancedRequestExecution.java:44)
at br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)
at br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:58)
at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at com.opensymphony.sitemesh.webapp.SiteMeshFilter.obtainContent(SiteMeshFilter.java:129)
at com.opensymphony.sitemesh.webapp.SiteMeshFilter.doFilter(SiteMeshFilter.java:77)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:964)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:304)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘usuarioRepositoryImpl’: Unsatisfied dependency expressed through constructor argument with index 0 of type [org.hibernate.Session]: : No unique bean of type [org.hibernate.Session] is defined: expected single matching bean but found 2: [br.com.caelum.vraptor.util.hibernate.SessionCreator, br.ufpi.componets.vraptor.JITSessionCreator]; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [org.hibernate.Session] is defined: expected single matching bean but found 2: [br.com.caelum.vraptor.util.hibernate.SessionCreator, br.ufpi.componets.vraptor.JITSessionCreator]
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:730)
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:196)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1003)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:907)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:485)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$2.getObject(AbstractBeanFactory.java:329)
at org.springframework.web.context.request.AbstractRequestAttributesScope.get(AbstractRequestAttributesScope.java:43)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:325)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:844)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:786)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:703)
at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:795)
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:723)
… 47 more
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [org.hibernate.Session] is defined: expected single matching bean but found 2: [br.com.caelum.vraptor.util.hibernate.SessionCreator, br.ufpi.componets.vraptor.JITSessionCreator]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:796)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:703)
at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:795)
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:723)
… 61 more

Mar 01, 2012 9:31:39 AM org.apache.catalina.core.StandardWrapperValve invoke
Grave: Servlet.service() for servlet [default] in context with path [/usabilidade] threw exception
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘loginController’: Unsatisfied dependency expressed through constructor argument with index 1 of type [br.ufpi.repositories.UsuarioRepository]: : Error creating bean with name ‘usuarioRepositoryImpl’: Unsatisfied dependency expressed through constructor argument with index 0 of type [org.hibernate.Session]: : No unique bean of type [org.hibernate.Session] is defined: expected single matching bean but found 2: [br.com.caelum.vraptor.util.hibernate.SessionCreator, br.ufpi.componets.vraptor.JITSessionCreator]; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [org.hibernate.Session] is defined: expected single matching bean but found 2: [br.com.caelum.vraptor.util.hibernate.SessionCreator, br.ufpi.componets.vraptor.JITSessionCreator]; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘usuarioRepositoryImpl’: Unsatisfied dependency expressed through constructor argument with index 0 of type [org.hibernate.Session]: : No unique bean of type [org.hibernate.Session] is defined: expected single matching bean but found 2: [br.com.caelum.vraptor.util.hibernate.SessionCreator, br.ufpi.componets.vraptor.JITSessionCreator]; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [org.hibernate.Session] is defined: expected single matching bean but found 2: [br.com.caelum.vraptor.util.hibernate.SessionCreator, br.ufpi.componets.vraptor.JITSessionCreator]
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:730)
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:196)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1003)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:907)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:485)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$2.getObject(AbstractBeanFactory.java:329)
at org.springframework.web.context.request.AbstractRequestAttributesScope.get(AbstractRequestAttributesScope.java:43)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:325)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:263)
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1083)
at br.com.caelum.vraptor.ioc.spring.SpringBasedContainer.instanceFor(SpringBasedContainer.java:86)
at br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:46)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
at br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor.intercept(ExceptionHandlerInterceptor.java:71)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
at br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:69)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
at br.com.caelum.vraptor.core.EnhancedRequestExecution.execute(EnhancedRequestExecution.java:44)
at br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)
at br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:58)
at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at com.opensymphony.sitemesh.webapp.SiteMeshFilter.obtainContent(SiteMeshFilter.java:129)
at com.opensymphony.sitemesh.webapp.SiteMeshFilter.doFilter(SiteMeshFilter.java:77)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:964)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:304)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘usuarioRepositoryImpl’: Unsatisfied dependency expressed through constructor argument with index 0 of type [org.hibernate.Session]: : No unique bean of type [org.hibernate.Session] is defined: expected single matching bean but found 2: [br.com.caelum.vraptor.util.hibernate.SessionCreator, br.ufpi.componets.vraptor.JITSessionCreator]; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [org.hibernate.Session] is defined: expected single matching bean but found 2: [br.com.caelum.vraptor.util.hibernate.SessionCreator, br.ufpi.componets.vraptor.JITSessionCreator]
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:730)
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:196)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1003)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:907)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:485)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$2.getObject(AbstractBeanFactory.java:329)
at org.springframework.web.context.request.AbstractRequestAttributesScope.get(AbstractRequestAttributesScope.java:43)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:325)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:844)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:786)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:703)
at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:795)
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:723)
… 47 more
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [org.hibernate.Session] is defined: expected single matching bean but found 2: [br.com.caelum.vraptor.util.hibernate.SessionCreator, br.ufpi.componets.vraptor.JITSessionCreator]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:796)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:703)
at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:795)
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:723)
… 61 more
[/code]

vc tem a classe JITSessionCreator? Ela é um @Component?

As minhas classes de Configuração.

[code]
package br.ufpi.componets.vraptor;

import java.lang.reflect.Method;
import javax.annotation.PreDestroy;
import org.hibernate.classic.Session;
import org.hibernate.SessionFactory;
import net.vidageek.mirror.dsl.Mirror;
import br.com.caelum.vraptor.ioc.ApplicationScoped;
import br.com.caelum.vraptor.ioc.Component;
import br.com.caelum.vraptor.ioc.ComponentFactory;
import br.com.caelum.vraptor.ioc.RequestScoped;
import br.com.caelum.vraptor.proxy.MethodInvocation;
import br.com.caelum.vraptor.proxy.Proxifier;
import br.com.caelum.vraptor.proxy.SuperMethod;

/**

  • JIT (Just-in-Time) {@link Session} Creator fábrica para o

  • componente {@link Session} gerado de forma LAZY ou JIT(Just-in-Time)

  • a partir de uma {@link SessionFactory}, que normalmente se encontra

  • em um ecopo de aplicativo @{@link ApplicationScoped}.

  • @author Tomaz Lavieri

  • @since 1.0
    */
    @Component
    @RequestScoped
    public class JITSessionCreator implements ComponentFactory {

    private static final Method CLOSE =
    new Mirror().on(Session.class).reflect().method(“close”).withoutArgs();
    private static final Method FINALIZE =
    new Mirror().on(Object.class).reflect().method(“finalize”).withoutArgs();

    private final SessionFactory factory;
    /** Guarda a Proxy Session /
    private final Session proxy;
    /
    * Guarada a Session real. */
    private Session session;

    public JITSessionCreator(SessionFactory factory, Proxifier proxifier) {
    this.factory = factory;
    this.proxy = proxify(Session.class, proxifier); // 1
    }

    /**

    • Cria o JIT Session, que repassa a invocação de qualquer método, exceto
    • {@link Object#finalize()} e {@link Session#close()}, para uma session real,
    • criando uma se necessário.
      */
      private Session proxify(Class<? extends Session> target, Proxifier proxifier) {
      return proxifier.proxify(target, new MethodInvocation() {
      @Override // 2
      public Object intercept(Session proxy, Method method, Object[] args,
      SuperMethod superMethod) {
      if (method.equals(CLOSE)
      || (method.equals(FINALIZE) && session == null)) {
      return null; //skip
      }
      return new Mirror().on(getSession()).invoke().method(method)
      .withArgs(args);
      }
      });
      }

    public Session getSession() {
    if (session == null) // 3
    session = factory.openSession();
    return session;
    }

    @Override
    public Session getInstance() {
    return proxy; // 4
    }

    @PreDestroy
    public void destroy() { // 5
    if (session != null && session.isOpen()) {
    session.close();
    }
    }
    }[/code]

[code]package br.ufpi.componets.vraptor;

import br.com.caelum.vraptor.ioc.ApplicationScoped;
import br.com.caelum.vraptor.ioc.Component;
import br.com.caelum.vraptor.ioc.ComponentFactory;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.PostConstruct;
import org.hibernate.cfg.Configuration;

@ApplicationScoped
@Component
public class AnnotationConfigurationFactory implements ComponentFactory {

private static List<Class<?>> entities = new ArrayList<Class<?>>();

private Configuration configuration;

public AnnotationConfigurationFactory() {
	configuration = new Configuration();
}

@PostConstruct
public void addEntitiesToConfiguration() {
	configuration.configure();
	for (Class<?> entity : entities) {
		configuration.addAnnotatedClass(entity);
	}
}

static void addEntity(Class<?> entity) {
	entities.add(entity);
}

static List<Class<?>> getEntities() {
	return entities;
}

@Override
public Configuration getInstance() {
	return null;
}

}[/code]

[code]package br.ufpi.componets.vraptor;

import java.io.Serializable;
import java.lang.reflect.Field;

import javax.persistence.Id;

import net.vidageek.mirror.dsl.Matcher;
import net.vidageek.mirror.dsl.Mirror;

import org.hibernate.CallbackException;
import org.hibernate.EmptyInterceptor;
import org.hibernate.EntityMode;

import br.com.caelum.iogi.Instantiator;
import br.com.caelum.iogi.parameters.Parameters;
import br.com.caelum.iogi.reflection.Target;
import br.com.caelum.vraptor.ioc.Component;

@Component
public class RepositoryInterceptor extends EmptyInterceptor {

/**
 * generated by eclipse
 */
private static final long serialVersionUID = 5848222336834528934L;

private final Instantiator<Object> instantiator;

public RepositoryInterceptor(Instantiator<Object> instantiator) {
	this.instantiator = instantiator;
}

@Override
public Object instantiate(String className, EntityMode mode, Serializable id) throws CallbackException {
	Object object = instantiator.instantiate(new Target(new Mirror().reflectClass(className), ""), new Parameters());

	Field field = new Mirror().on(className).reflectAll().fieldsMatching(new Matcher<Field>() {
		public boolean accepts(Field field) {
			return field.isAnnotationPresent(Id.class);
		}
	}).get(0);

	new Mirror().on(object).set().field(field).withValue(id);
	return object;
}

}[/code]

O Verdadeiro Erro

As outras.

[code]package br.ufpi.componets.vraptor;

import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;

import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import br.com.caelum.vraptor.ioc.Component;
import br.com.caelum.vraptor.ioc.ApplicationScoped;
import br.com.caelum.vraptor.ioc.ComponentFactory;

@ApplicationScoped
@Componet
public class SessionFactoryCreator implements ComponentFactory {

private SessionFactory factory;
private final Configuration configuration;

public SessionFactoryCreator(Configuration configuration) {
	this.configuration = configuration;
}

@PostConstruct
public void create() {
	factory = configuration.buildSessionFactory();
}

public SessionFactory getInstance() {
	return factory;
}

@PreDestroy
public void destroy() {
	factory.close();
}

}[/code]

O Spring esta encontrando duas classes A JetSesion e outra do vraptor!

vc está com o pacote do hibernate registrado no web.xml? se sim, tire…

Lucas deletei a anotação do web.xml.
agora aparece este erro.
A classe SessionFactoryCreator não consegui criar configuration.buildSessionFactory();

Exception starting filter vraptor org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactoryCreator': Invocation of init method failed; nested exception is java.lang.NullPointerException at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:133) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:394) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1413) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:580) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425) at br.com.caelum.vraptor.ioc.spring.SpringBasedContainer.start(SpringBasedContainer.java:106) at br.com.caelum.vraptor.ioc.spring.SpringProvider.start(SpringProvider.java:87) at br.com.caelum.vraptor.VRaptor.init(VRaptor.java:110) at br.com.caelum.vraptor.VRaptor.init(VRaptor.java:103) at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:273) at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:254) at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:372) at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:98) at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4584) at org.apache.catalina.core.StandardContext$2.call(StandardContext.java:5262) at org.apache.catalina.core.StandardContext$2.call(StandardContext.java:5257) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) at java.util.concurrent.FutureTask.run(FutureTask.java:166) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) at java.lang.Thread.run(Thread.java:722) Caused by: java.lang.NullPointerException at br.ufpi.componets.vraptor.SessionFactoryCreator.create(SessionFactoryCreator.java:26) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:340) at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:293) at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:130) ... 27 more

Caused by: java.lang.NullPointerException
at br.ufpi.componets.vraptor.SessionFactoryCreator.create(SessionFactoryCreator.java:26)

o que tem nessa linha?

dá uma olhada no método getInstance do seu AnnotationConfigurationFactory :wink:

Mais uma duvida.

[code]
public class LoginController {

private final Result result;
private final UsuarioRepository usuarioRepository;
private UsuarioLogado usuarioLogado;
private final Validator validator;

@Get("/login")
public void login() {
}[/code]
Ao chamar este metodo com as alteraç~eos que eu fiz não era pra ele inicializar o usuarioRepository certo?
Se não for pra inicializar eles esta inicializando.

como assim não era pra inicializar?

vc não recebeu ele no construtor?

Pelo que eu entendi http://vraptor.caelum.com.br/cookbook/poupando-recursos-lazy-dependency-injection/ não era pra ele inicializar nenhum destes atributos, pois o metodo não necessita deles.
Eu fiz um teste pra analisar se toda vez UsuarioRepository esta iniciliazando. coloquei um Sysout no construtor. E ele esta iniciando toda vez que chama este metodo.

inicializar ele vai inicializar sim, já que vc recebeu eles no controller.

O que não vai inicializar é a Session do hibernate, que só vai ser criada de verdade quando alguém chamar algum método dela.