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
