Erro dependência SACI

34 views
Skip to first unread message

Cleber Angelo

unread,
Apr 27, 2012, 4:41:42 PM4/27/12
to caelum-...@googlegroups.com
Estou tentando utilizar o SACI para controle de acesso. Implementei a interface profile

@Component
public interface Profile {

  public boolean isLoggedIn();

  public List<String> getRoles();

  public int getAccessLevel();
 
}


Está ocorrendo o erro:

Grave: Servlet.service() for servlet [default] in context with path [/promocoes] threw exception
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'accessControllerInterceptor': Unsatisfied dependency expressed through constructor argument with index 2 of type [br.com.bronx.vraptor.saci.interfaces.Profile]: : No matching bean of type [br.com.bronx.vraptor.saci.interfaces.Profile] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [br.com.bronx.vraptor.saci.interfaces.Profile] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}

O que pode ser?

--
Cleber Angelo Capellari

Lucas Cavalcanti

unread,
Apr 27, 2012, 4:43:46 PM4/27/12
to caelum-...@googlegroups.com
vc registrou o pacote do saci no web.xml?

2012/4/27 Cleber Angelo <cleber.c...@gmail.com>


--
Cleber Angelo Capellari

--
You received this message because you are subscribed to the Google Groups "caelum-vraptor" group.
To post to this group, send email to caelum-...@googlegroups.com.
To unsubscribe from this group, send email to caelum-vrapto...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/caelum-vraptor?hl=en.

Cleber Angelo

unread,
Apr 27, 2012, 4:50:00 PM4/27/12
to caelum-...@googlegroups.com
Sim, tá assim:

<context-param>
        <param-name>br.com.caelum.vraptor.packages</param-name>
        <param-value>br.com.caelum.vraptor.util.hibernate,
        br.com.caelum.vraptor.converter.l10n,
        br.com.bronx.vraptor.saci</param-value>
    </context-param>
--
Cleber Angelo Capellari

Lucas Cavalcanti

unread,
Apr 27, 2012, 4:53:39 PM4/27/12
to caelum-...@googlegroups.com
Deu algum erro na inicialização do sistema, antes de dar esse erro?

2012/4/27 Cleber Angelo <cleber.c...@gmail.com>

Cleber Angelo

unread,
Apr 27, 2012, 5:00:42 PM4/27/12
to caelum-...@googlegroups.com
Em princípio não. O log do tomcat tá assim:

Abr 27, 2012 6:00:04 PM org.apache.catalina.core.StandardWrapperValve invoke

Grave: Servlet.service() for servlet [default] in context with path [/promocoes] threw exception
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'accessControllerInterceptor': Unsatisfied dependency expressed through constructor argument with index 2 of type [br.com.bronx.vraptor.saci.interfaces.Profile]: : No matching bean of type [br.com.bronx.vraptor.saci.interfaces.Profile] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [br.com.bronx.vraptor.saci.interfaces.Profile] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}
    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.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.InstantiateInterceptor.intercept(InstantiateInterceptor.java:48)
    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.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:83)
    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:91)
    at br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:58)
    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: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:98)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
    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.NoSuchBeanDefinitionException: No matching bean of type [br.com.bronx.vraptor.saci.interfaces.Profile] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:920)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:789)
    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)
    ... 50 more

Lucas Cavalcanti

unread,
Apr 27, 2012, 5:06:32 PM4/27/12
to caelum-...@googlegroups.com
Então, acho que vc precisa criar um componente que implementa essa interface:
https://github.com/bronx/SACI-VRaptor/blob/master/src/br/com/bronx/vraptor/saci/interfaces/Profile.java

http://dev.diegomaia.net/?p=30

2012/4/27 Cleber Angelo <cleber.c...@gmail.com>

Cleber Angelo

unread,
Apr 27, 2012, 7:53:45 PM4/27/12
to caelum-...@googlegroups.com
Então, já fiz essa implementação. Eu segui exatamente o que está
descrito neste blog:
http://dev.diegomaia.net/?p=30



2012/4/27, Lucas Cavalcanti <lucasm...@gmail.com>:

Otávio Garcia

unread,
Apr 28, 2012, 12:11:40 PM4/28/12
to caelum-...@googlegroups.com
A classe que implementa Profile, está anotada com o @Component do VRaptor? Note que é possível que no import você tenha selecionado o @Component de outro framework, etc.

2012/4/27 Cleber Angelo <cleber.c...@gmail.com>

Cleber Angelo

unread,
Apr 28, 2012, 7:16:43 PM4/28/12
to caelum-...@googlegroups.com
Está.

@Component
public class Perfil implements Profile {
...

A interface Profile tem que estar anotada? Na documentação não há
referência sobre isso, então não anotei.

Observando o log de erros, parece que o problema está em não estar
encontrando a interface Profile, mas ela está implementada.


2012/4/28, Otávio Garcia <ota...@otavio.com.br>:

Lucas Cavalcanti

unread,
Apr 28, 2012, 8:37:06 PM4/28/12
to caelum-...@googlegroups.com
vc criou uma Profile na sua aplicação? é pra usar o Profile que já existe no SACI.
Reply all
Reply to author
Forward
0 new messages