According to the error, you're defining the bean wrong:

"3 constructor arguments specified but no matching constructor found in bean
'attributeRepository' (hint: specify index/type/name arguments for simple
parameters to avoid type ambiguities)"

It doesn't match the constructor.


On Tue, Aug 31, 2010 at 5:54 AM, Fco Javier Carreras Calero <
[email protected]> wrote:

>  Hi,
>
>
>
> I want to get the attributes of a user that exists in the Oracle database. 
> User
> authentication is correct, so the connection to the DB is correct. When I
> get other user data I get the following error:
>
>
>
>
>
> 2010-08-31 09:48:49,136 ERROR
> [org.jasig.cas.web.init.SafeContextLoaderListener] -
> SafeContextLoaderListener:
>
> The Spring ContextLoaderListener we wrap threw on contextInitialized.
>
> But for our having caught this error, the web application context would not
> have initialized.
>
> org.springframework.beans.factory.BeanCreationException: Error creating
> bean with name 'centralAuthenticationService' defined in ServletContext
> resource [/WEB-INF/spring-configuration/applicationContext.xml]: Cannot
> resolve reference to bean 'authenticationManager' while setting bean
> property 'authenticationManager'; nested exception is
> org.springframework.beans.factory.BeanCreationException: Error creating bean
> with name 'authenticationManager' defined in ServletContext resource
> [/WEB-INF/deployerConfigContext.xml]: Cannot create inner bean
> 'org.jasig.cas.authentication.principal.UsernamePasswordCredentialsToPrincipalResolver#9a18a0'
> of type
> [org.jasig.cas.authentication.principal.UsernamePasswordCredentialsToPrincipalResolver]
> while setting bean property 'credentialsToPrincipalResolvers' with key [0];
> nested exception is org.springframework.beans.factory.BeanCreationException:
> Error creating bean with name
> 'org.jasig.cas.authentication.principal.UsernamePasswordCredentialsToPrincipalResolver#9a18a0'
> defined in ServletContext resource [/WEB-INF/deployerConfigContext.xml]:
> Cannot resolve reference to bean 'attributeRepository' while setting bean
> property 'attributeRepository'; nested exception is
> org.springframework.beans.factory.BeanCreationException: Error creating bean
> with name 'attributeRepository' defined in ServletContext resource
> [/WEB-INF/deployerConfigContext.xml]: 3 constructor arguments specified but
> no matching constructor found in bean 'attributeRepository' (hint: specify
> index/type/name arguments for simple parameters to avoid type ambiguities)
>
>                 at
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:328)
>
>                 at
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)
>
>                 at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1308)
>
>                 at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1067)
>
>                 at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:511)
>
>                 at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:450)
>
>                 at
> org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:290)
>
>                 at
> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
>
>                 at
> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:287)
>
>                 at
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:189)
>
>                 at
> org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:562)
>
>                 at
> org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:871)
>
>                 at
> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:423)
>
>                 at
> org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:272)
>
>                 at
> org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:196)
>
>                 at
> org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)
>
>                 at
> org.jasig.cas.web.init.SafeContextLoaderListener.contextInitialized_aroundBody0(SafeContextLoaderListener.java:62)
>
>                 at
> org.jasig.cas.web.init.SafeContextLoaderListener.contextInitialized_aroundBody1$advice(SafeContextLoaderListener.java:44)
>
>                 at
> org.jasig.cas.web.init.SafeContextLoaderListener.contextInitialized(SafeContextLoaderListener.java:1)
>
>                 at
> org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4135)
>
>                 at
> org.apache.catalina.core.StandardContext.start(StandardContext.java:4630)
>
>                 at
> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
>
>                 at
> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
>
>                 at
> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:546)
>
>                 at
> org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:905)
>
>                 at
> org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:740)
>
>                 at
> org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:500)
>
>                 at
> org.apache.catalina.startup.HostConfig.start(HostConfig.java:1277)
>
>                 at
> org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:321)
>
>                 at
> org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
>
>                 at
> org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
>
>                 at
> org.apache.catalina.core.StandardHost.start(StandardHost.java:785)
>
>                 at
> org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
>
>                 at
> org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445)
>
>                 at
> org.apache.catalina.core.StandardService.start(StandardService.java:519)
>
>                 at
> org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
>
>                 at
> org.apache.catalina.startup.Catalina.start(Catalina.java:581)
>
>                 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
> Method)
>
>                 at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>
>                 at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>
>                 at java.lang.reflect.Method.invoke(Method.java:597)
>
>                 at
> org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
>
>                 at
> org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
>
> Caused by: org.springframework.beans.factory.BeanCreationException: Error
> creating bean with name 'authenticationManager' defined in ServletContext
> resource [/WEB-INF/deployerConfigContext.xml]: Cannot create inner bean
> 'org.jasig.cas.authentication.principal.UsernamePasswordCredentialsToPrincipalResolver#9a18a0'
> of type
> [org.jasig.cas.authentication.principal.UsernamePasswordCredentialsToPrincipalResolver]
> while setting bean property 'credentialsToPrincipalResolvers' with key [0];
> nested exception is org.springframework.beans.factory.BeanCreationException:
> Error creating bean with name
> 'org.jasig.cas.authentication.principal.UsernamePasswordCredentialsToPrincipalResolver#9a18a0'
> defined in ServletContext resource [/WEB-INF/deployerConfigContext.xml]:
> Cannot resolve reference to bean 'attributeRepository' while setting bean
> property 'attributeRepository'; nested exception is
> org.springframework.beans.factory.BeanCreationException: Error creating bean
> with name 'attributeRepository' defined in ServletContext resource
> [/WEB-INF/deployerConfigContext.xml]: 3 constructor arguments specified but
> no matching constructor found in bean 'attributeRepository' (hint: specify
> index/type/name arguments for simple parameters to avoid type ambiguities)
>
>                 at
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:281)
>
>                 at
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:120)
>
>                 at
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveManagedList(BeanDefinitionValueResolver.java:355)
>
>                 at
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:153)
>
>                 at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1308)
>
>                 at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1067)
>
>                 at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:511)
>
>                 at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:450)
>
>                 at
> org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:290)
>
>                 at
> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
>
>                 at
> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:287)
>
>                 at
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:189)
>
>                 at
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)
>
>                 ... 42 more
>
>
>
> The code used in the deployerConfigContext.xml is:
>
>
>
> <bean id="attributeRepository"
> class="org.jasig.services.persondir.support.jdbc.SingleRowJdbcPersonAttributeDao">
>  <constructor-arg index="0" ref="dataSource"/>
>  <constructor-arg index="1">
>   <list>
>    <value>user</value>
>   </list>
>  </constructor-arg>
>  <constructor-arg index="2" value="SELECT surname FROM users WHERE
> lower(user) = lower(?)"/>
>
>
>
>  <property name="columnsToAttributes">
>   <map>
>    <entry key="surname" value=" surname" />
>   </map>
>  </property>
> </bean>
>
>
>
>
>
> In the bean UsernamePasswordCredentiaslToPrincipalResolver I write the
> following:
>
>
>
> <property name=”attributeRepository”>
>
>                 <ref bean=” attributeRepository”/>
>
> </property>
>
>
>
>
>
> On the other hand, I also tried the following code, and I get no error, but
> I do not get the attributes from the client.
>
>
>
>
>
> <bean id=" attributeRepository "
>
>
>  
> class="org.jasig.services.persondir.support.jdbc.SingleRowJdbcPersonAttributeDao">
>
>                  <constructor-arg index="0" ref="dataSource" />
>
>                 <constructor-arg index="1" value=" SELECT surname FROM
> users WHERE lower(user) = lower(?)"/>/>
>
>                  <property name="queryAttributeMapping">
>
>                  <map>
>
>                      <entry key="user" value="user" />
>
>                  </map>
>
>                  </property>
>
>                  <property name="resultAttributeMapping">
>
>                  <map>
>
>                      <entry key="surname" value=" surname " />
>
>                  </map>
>
>                  </property>
>
>                      </bean>
>
>
>
> The code in the jsp file from the client is:
>
>
>
>
>
>  <dt>Your attributes:</dt>
> <%
>   AttributePrincipal principal = (AttributePrincipal)
> request.getUserPrincipal();
>   Map attributes = principal.getAttributes();
>
>
>
>   if (attributes.size() > 0) {
>
>
>
>    out.println("You have " + attributes.size() + " attributes : <br />");
>    Iterator keyIterator = attributes.keySet().iterator();
>
>
>
>    while (keyIterator.hasNext()) {
>
>
>
>     Object key = keyIterator.next();
>     Object value = attributes.get(key);
>     out.println("<b>" + key + "</b>" + " : " + value);
>           }
>   } else {
>    out.println("You have no attributes set");
>   }
> %>
> </dl>
>
>
>
>
>
> How do I resolve this?
>
>
>
> Thanks.
>
>
>
> --
> You are currently subscribed to [email protected] as: 
> [email protected]
>
> To unsubscribe, change settings or access archives, see 
> http://www.ja-sig.org/wiki/display/JSG/cas-user
>
>

-- 
You are currently subscribed to [email protected] as: 
[email protected]
To unsubscribe, change settings or access archives, see 
http://www.ja-sig.org/wiki/display/JSG/cas-user

Reply via email to