[RESOLVIDO] org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of

Boa tarde pessoal, estou tentando utilizar o Vraptor com JPA, seguindo um tutorial que encontrei na internet, porém estou com o seguinte erro


org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'roleController' defined in file [C:\XXX\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\XXX-XXX-UI\WEB-INF\classes\br\com\xxx\xxx\security\controller\RoleController.class]: Unsatisfied dependency expressed through constructor argument with index 0 of type [br.com.xxx.xxx.security.model.dao.impl.RoleDaoImpl]: : No unique bean of type [br.com.xxx.xxx.security.model.dao.impl.RoleDaoImpl] is defined: Unsatisfied dependency of type [class br.com.xxx.xxx.security.model.dao.impl.RoleDaoImpl]: expected at least 1 matching bean; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [br.com.xxx.xxx.security.model.dao.impl.RoleDaoImpl] is defined: Unsatisfied dependency of type [class br.com.xxx.xxx.security.model.dao.impl.RoleDaoImpl]: expected at least 1 matching bean
	at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:591)
	at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:193)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:925)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:835)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:440)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
	at java.security.AccessController.doPrivileged(Native Method)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
	at org.springframework.beans.factory.support.AbstractBeanFactory$2.getObject(AbstractBeanFactory.java:302)
	at org.springframework.web.context.request.AbstractRequestAttributesScope.get(AbstractRequestAttributesScope.java:43)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:298)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
	at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:880)
	at br.com.caelum.vraptor.ioc.spring.VRaptorApplicationContext.getBean(VRaptorApplicationContext.java:259)
	at br.com.caelum.vraptor.ioc.spring.SpringBasedContainer.instanceFor(SpringBasedContainer.java:59)
	at br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:41)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	at br.com.caelum.vraptor.interceptor.InterceptorListPriorToExecutionExtractor.intercept(InterceptorListPriorToExecutionExtractor.java:44)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	at br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:81)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	at br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:67)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	at br.com.caelum.vraptor.core.DefaultRequestExecution.execute(DefaultRequestExecution.java:70)
	at br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)
	at br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:56)
	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 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [br.com.xxx.xxx.security.model.dao.impl.RoleDaoImpl] is defined: Unsatisfied dependency of type [class br.com.xxx.xxx.security.model.dao.impl.RoleDaoImpl]: expected at least 1 matching bean
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:613)
	at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:622)
	at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:584)
	... 51 more

Conforme descrito no tutorial, configurei meu web.xml da seguinte maneira


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

O meu Dao está assim

@Component
public class RoleDaoImpl implements RoleDao {
	
	private EntityManager manager;
	
	public RoleDaoImpl(EntityManager manager){
		this.manager = manager;
	}
	
	Logger logger = Logger.getLogger(RoleDaoImpl.class);
	
	@Override
	public void save(Role role) {
		logger.info("iniciando metodo save");
		logger.info("Role - discription: " + role.getDescription());
		
		try{
			manager.persist(role);
		}catch (Exception e) {
			logger.error("erro ao inserir role " + role.getDescription());
			logger.error("erro " + e.getMessage());
		}
		
		logger.info("role " + role.getDescription() + " inserida com sucesso");
		
	}


}

E por fim, meu controller ficou da seguinte maneira


@Resource
public class RoleController {
	
	private RoleDaoImpl roleDao;
	
	public RoleController(RoleDaoImpl roleDao){
		this.roleDao = roleDao;
	}
	
	@Post
	@Path("/role/inserir")
	public void inserir(Role role){
		roleDao.save(role);

	}
}

Não sei se falta mais alguma configuração ou, se coloquei configuração a mais. Se puderem me ajudar, agradeço =)

No seu controller substitui o “RoleDaoImpl” por “RoleDao”

[code]@Resource
public class RoleController {

private RoleDao roleDao; [/code]

sliverfrf, em primeiro lugar, obrigada pela ajuda…

Eu alterei a linha e continua a mesma coisa. Na verdade, a unica coisa que alterou foi a classe de erro

org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [br.com.xxx.xxx.security.model.dao.RoleDao] is defined: Unsatisfied dependency of type [interface br.com.xxx.xxx.security.model.dao.RoleDao]: expected at least 1 matching bean

Alguma outra sugestão?

Tenta isso

[code]
@Repository
public class RoleDaoImpl implements RoleDao {

@PersistenceContext
private EntityManager manager;[/code]

@Controller public class RoleController { @Autowired @Qualifier("roleDaoImpl") private RoleDaoImpl roleDao;

E na configuração do spring

<context:component-scan base-package="br.com.caelum" />

sliverfrf,

Eu estou utilizando vraptor porém sem spring… A forma que você me passou acima é utilizando spring correto? Porém o meu sistema não terá integração com Spring =/

Isso… usando o spring, achei que vc estava usando por causa da exception…

Não conheço o vraptor… =/

Coloque o @Component do VRaptor no RoleDaoImpl

Lucas, aparentemente consegui resolver o problema… Eu estava colocando a configuração do context no lugar errado… Porém agora estou com o seguinte erro

Caused by: org.apache.commons.logging.LogConfigurationException: No suitable Log constructor [Ljava.lang.Class;@3970604f for org.apache.commons.logging.impl.Log4JLogger (Caused by java.lang.NoClassDefFoundError: org/apache/log4j/Category)
	at org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor(LogFactoryImpl.java:413)
	at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:529)
	... 24 more
Caused by: java.lang.NoClassDefFoundError: org/apache/log4j/Category
	at java.lang.Class.getDeclaredConstructors0(Native Method)
	at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
	at java.lang.Class.getConstructor0(Unknown Source)
	at java.lang.Class.getConstructor(Unknown Source)
	at org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor(LogFactoryImpl.java:410)
	... 25 more
Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Category
	at java.net.URLClassLoader$1.run(Unknown Source)
	at java.net.URLClassLoader$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)

Estou utilizando o Tomcat 7. Você sabe se ele dá algum conflito? Já coloquei os jars dentro da lib do tomcat, mas não obtive sucesso…

aparentemente falta o jar do log4j ou vc tá com uma versão errada dele.

Lucas,

Eu estou usando o Maven…
Quando eu coloco a dependência do vraptor ( estou utilizando a versão 3.5.1), ele já traz o log4j-1.2.16.jar.
Essa versão tem alguma impeditivo para trabalhar com tomcat7?

só se já existir um jar do log4j com versão diferente na lib do servidor.

Lucas,

eu refiz minha aplicação… E aí consegui prosseguir… O log4j está rodando… Porém, estou com erro ao tentar executar o EntityManager…

O erro é o seguinte

com.google.inject.ProvisionException: Guice provision errors:

1) Error notifying InjectionListener br.com.caelum.vraptor.ioc.guice.ScopeLifecycleListener$LifecycleExecutor@7d726b7f of br.com.caelum.vraptor.util.jpa.EntityManagerCreator.
 Reason: net.vidageek.mirror.exception.ReflectionProviderException: Could not invoke method create
  at br.com.caelum.vraptor.ioc.guice.GuiceComponentRegistry.bindToConstructor(GuiceComponentRegistry.java:151)
  while locating br.com.caelum.vraptor.util.jpa.EntityManagerCreator
  while locating br.com.caelum.vraptor.ioc.ComponentFactory&lt;javax.persistence.EntityManager&gt;
    for parameter 0 at br.com.caelum.vraptor.ioc.guice.ComponentFactoryProviderAdapter.&lt;init&gt;(ComponentFactoryProviderAdapter.java:35)
  while locating br.com.caelum.vraptor.ioc.guice.ComponentFactoryProviderAdapter&lt;javax.persistence.EntityManager&gt;
  while locating javax.persistence.EntityManager
    for parameter 0 at br.com.caelum.vraptor.util.jpa.JPATransactionInterceptor.&lt;init&gt;(JPATransactionInterceptor.java:43)
  at br.com.caelum.vraptor.ioc.guice.GuiceComponentRegistry.bindToConstructor(GuiceComponentRegistry.java:151)
  while locating br.com.caelum.vraptor.util.jpa.JPATransactionInterceptor

1 error
	at com.google.inject.internal.InjectorImpl$4.get(InjectorImpl.java:987)
	at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1013)
	at br.com.caelum.vraptor.ioc.guice.GuiceProvider$GuiceContainer.instanceFor(GuiceProvider.java:62)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:47)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	at br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)
	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:91)
	at br.com.caelum.vraptor.ioc.guice.GuiceProvider.provideForRequest(GuiceProvider.java:82)
	at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:88)
	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:222)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: net.vidageek.mirror.exception.ReflectionProviderException: Could not invoke method create
	at net.vidageek.mirror.provider.java.PureJavaMethodReflectionProvider.invoke(PureJavaMethodReflectionProvider.java:45)
	at net.vidageek.mirror.invoke.MethodHandlerByMethod.withArgs(MethodHandlerByMethod.java:54)
	at net.vidageek.mirror.invoke.MethodHandlerByMethod.withoutArgs(MethodHandlerByMethod.java:58)
	at br.com.caelum.vraptor.ioc.guice.ScopeLifecycleListener$LifecycleExecutor.afterInjection(ScopeLifecycleListener.java:89)
	at com.google.inject.internal.MembersInjectorImpl.notifyListeners(MembersInjectorImpl.java:97)
	at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:95)
	at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:254)
	at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031)
	at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
	at br.com.caelum.vraptor.ioc.guice.AbstractScope$ScopedProvider.get(AbstractScope.java:73)
	at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
	at com.google.inject.internal.FactoryProxy.get(FactoryProxy.java:54)
	at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38)
	at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62)
	at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:84)
	at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:254)
	at com.google.inject.internal.BoundProviderFactory.get(BoundProviderFactory.java:53)
	at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38)
	at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62)
	at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:84)
	at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:254)
	at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031)
	at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
	at br.com.caelum.vraptor.ioc.guice.AbstractScope$ScopedProvider.get(AbstractScope.java:73)
	at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
	at com.google.inject.internal.InjectorImpl$4$1.call(InjectorImpl.java:978)
	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1024)
	at com.google.inject.internal.InjectorImpl$4.get(InjectorImpl.java:974)
	... 29 more
Caused by: &lt;openjpa-2.2.2-r422266:1468616 nonfatal user error&gt; org.apache.openjpa.persistence.ArgumentException: This configuration disallows runtime optimization, but the following listed types were not enhanced at build time or at class load time with a javaagent: "
br.com.igia.teste.model.Userario".
	at org.apache.openjpa.enhance.ManagedClassSubclasser.prepareUnenhancedClasses(ManagedClassSubclasser.java:115)
	at org.apache.openjpa.kernel.AbstractBrokerFactory.loadPersistentTypes(AbstractBrokerFactory.java:314)
	at org.apache.openjpa.kernel.AbstractBrokerFactory.initializeBroker(AbstractBrokerFactory.java:238)
	at org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:212)
	at org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:156)
	at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:227)
	at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:154)
	at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:60)
	at br.com.caelum.vraptor.util.jpa.EntityManagerCreator.create(EntityManagerCreator.java:45)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at net.vidageek.mirror.provider.java.PureJavaMethodReflectionProvider.invoke(PureJavaMethodReflectionProvider.java:38)
	... 58 more


Meu persistence.xml está da seguinte forma


	&lt;persistence-unit name="default"&gt;
		&lt;provider&gt;org.apache.openjpa.persistence.PersistenceProviderImpl&lt;/provider&gt;
		&lt;class&gt;br.com.igia.teste.model.Userario&lt;/class&gt;
		&lt;properties&gt;
			&lt;property name="openjpa.ConnectionURL" value="jdbc:mysql://localhost/seguranca" /&gt;
			&lt;property name="openjpa.ConnectionDriverName" value="com.mysql.jdbc.Driver" /&gt;
			&lt;property name="openjpa.ConnectionUserName" value="admin" /&gt;
			&lt;property name="openjpa.ConnectionPassword" value="admin" /&gt;
			&lt;property name="openjpa.Log" value="DefaultLevel=WARN, Tool=INFO" /&gt;
			&lt;property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema" /&gt;
		&lt;/properties&gt;
	&lt;/persistence-unit&gt;

Ele precisa ter mais alguma informação?

This configuration disallows runtime optimization, but the following listed types were not enhanced at build time or at class load time with a javaagent: “
br.com.igia.teste.model.Userario”.

OU seja, tem algum lugar que está configurado como Userario ao invés de User ou Usuario.

O nome da classe está correto, eu coloquei esse nome apenas pq já existia uma tabela usuario em minha base… Porém alterei para Usuario e o erro persiste…
Começo a pensar que isso é problema direto do OpenJPA… tá difícil =/

Lucas, consegui resolver :slight_smile:

Era preciso adicionar a seguinte propriedade no meu persistence.xml

&lt;property name="openjpa.RuntimeUnenhancedClasses" value="supported"/&gt; 

Muito obrigada por sua ajuda e paciência…

Lucas só mais uma coisa. EU tentei refazer o projeto, separando o meu persistence do meu web, mas ao tentar rodar meu web tive o seguinte erro

com.google.inject.CreationException: Guice creation errors:

1) No implementation for javax.persistence.EntityManager was bound.
  while locating javax.persistence.EntityManager
    for parameter 0 at br.comindra.igia.security.model.dao.impl.RoleDaoImpl.&lt;init&gt;(RoleDaoImpl.java:21)
  while locating br.comindra.igia.security.model.dao.impl.RoleDaoImpl
    for parameter 0 at br.com.indra.igia.security.controller.RoleController.&lt;init&gt;(RoleController.java:17)
  at br.com.caelum.vraptor.ioc.guice.GuiceComponentRegistry.bindToConstructor(GuiceComponentRegistry.java:151)

1 error
	at com.google.inject.internal.Errors.throwCreationExceptionIfErrorsExist(Errors.java:435)
	at com.google.inject.internal.InternalInjectorCreator.initializeStatically(InternalInjectorCreator.java:154)
	at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:106)
	at com.google.inject.Guice.createInjector(Guice.java:95)
	at com.google.inject.Guice.createInjector(Guice.java:83)
	at br.com.caelum.vraptor.ioc.guice.GuiceProvider.start(GuiceProvider.java:97)
	at br.com.caelum.vraptor.VRaptor.init(VRaptor.java:108)
	at br.com.caelum.vraptor.VRaptor.init(VRaptor.java:102)
	at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:281)
	at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:262)
	at org.apache.catalina.core.ApplicationFilterConfig.&lt;init&gt;(ApplicationFilterConfig.java:107)
	at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4775)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5452)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
	at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

Ele funciona se estiver em projetos separados?
Obs: meu persistence está com dependencia do web!

Lucas, agora sim está tudo resolvido. Estava faltando a dependência do vraptor-jpa . Mais uma vez muito obrigada .