Hi, I don't do any constructor injection myself, so this has something to do with the generated proxy in Spring. The TestWsServiceImpl is already implementing a TestWsService interface. I think the CGLIB proxified service bean comes from Spring Security. Because when I remove the Spring Security config it all works immediately. But we don't do any strange stuff in our Spring Security configuration, I included the configuration below:
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:s="http://www.springframework.org/schema/security" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.0.xsd"> <s:http entry-point-ref="entryPoint"> <s:anonymous enabled="false" /> </s:http> <bean id="entryPoint" class="org.springframework.security.web.authentication.Http403ForbiddenEntryPoint" /> <s:ldap-server url="${ldap.url}" manager-dn="${ldap.username}" manager-password="${ldap.password}" /> <s:authentication-manager> <s:ldap-authentication-provider user-search-base="cn=users" user-search-filter="(uid={0})" group-search-filter="(member={0})" group-role-attribute="cn" group-search-base="ou=test" role-prefix="ROLE_" /> </s:authentication-manager> </beans> This Spring Security config is standard for Spring Flex applications. Any thoughts? Thanks, Tijs On Dec 23, 2010, at 11:09 AM, Sergey Beryozkin wrote: > Hi > > May be this information can help ? > > http://www.mkyong.com/spring/constructor-injection-type-ambiguities-in-spring/ > > It also seems like your service bean is CGLIB proxified by Spring. If you > introduce at least interface, ex, have your > TestWsServiceImpl implementing TestWsService then you should have a JDK > proxy instead and it might help to resolve the issue > > cheers, Sergey > > On Thu, Dec 23, 2010 at 8:30 AM, Tijs Rademakers > <[email protected]>wrote: > >> Hi, >> >> Thanks for the reply Sergey. I just tried your suggestion of adding the >> implementorClass like it's also mentioned in the >> http://cxf.apache.org/faq.html. >> But no luck there, still the same error message. Are there more options I >> can try? >> >> Best regards, >> >> Tijs >> >> On Dec 20, 2010, at 17:58 PM, Sergey Beryozkin wrote: >> >>> Hi >>> You may also need to add an implementorClass attribute to the >> jaxws:endpoint >>> >>> cheers, Sergey >>> >>> >>> >>> On Mon, Dec 20, 2010 at 2:27 PM, Tijs Rademakers >>> <[email protected]>wrote: >>> >>>> Hi, >>>> >>>> In a project I'm working on we use Spring Security and Spring Flex to >>>> communicate between the Flex application and the Spring service layer. >> Now >>>> we want to add some Apache CXF web services and we receive the following >>>> stacktrace: >>>> >>>> 2010-12-20 14:47:17.529 ERROR [main] >>>> ContextLoader.initWebApplicationContext:(220) Context initialization >> failed >>>> org.springframework.beans.factory.BeanCreationExce ption: Error creating >>>> bean with name 'testWS': Could not resolve matching constructor (hint: >>>> specify index/type/name arguments for simple parameters to avoid type >>>> ambiguities) >>>> at >>>> >> org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:250) >>>> at org.springframework.beans.factory.support.Abstract >>>> AutowireCapableBeanFactory.autowireConstructor(Abs >>>> tractAutowireCapableBeanFactory.java:1003) >>>> at org.springframework.beans.factory.support.Abstract >>>> AutowireCapableBeanFactory.createBeanInstance(Abst >>>> ractAutowireCapableBeanFactory.java:907) >>>> at org.springframework.beans.factory.support.Abstract >>>> AutowireCapableBeanFactory.doCreateBean(AbstractAu >>>> towireCapableBeanFactory.java:485) >>>> at org.springframework.beans.factory.support.Abstract >>>> AutowireCapableBeanFactory.createBean(AbstractAuto >>>> wireCapableBeanFactory.java:456) >>>> at org.springframework.beans.factory.support.Abstract >>>> BeanFactory$1.getObject(AbstractBeanFactory.java:2 91) >>>> at org.springframework.beans.factory.support.DefaultS >>>> ingletonBeanRegistry.getSingleton(DefaultSingleton >> BeanRegistry.java:222) >>>> at org.springframework.beans.factory.support.Abstract >>>> BeanFactory.doGetBean(AbstractBeanFactory.java:288 ) >>>> at org.springframework.beans.factory.support.Abstract >>>> BeanFactory.getBean(AbstractBeanFactory.java:190) >>>> at org.springframework.beans.factory.support.DefaultL >>>> >> istableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:580) >>>> at org.springframework.context.support.AbstractApplic >>>> >> ationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895) >>>> at org.springframework.context.support.AbstractApplic >>>> ationContext.refresh(AbstractApplicationContext.java:425) >>>> at org.springframework.web.context.ContextLoader.crea >>>> teWebApplicationContext(ContextLoader.java:276) >>>> at org.springframework.web.context.ContextLoader.init >>>> WebApplicationContext(ContextLoader.java:197) >>>> at org.springframework.web.context.ContextLoaderListe >>>> ner.contextInitialized(ContextLoaderListener.java:47) >>>> at >>>> >> org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4135) >>>> at org.apache.catalina.core.StandardContext.start(Sta >>>> ndardContext.java:4630) >>>> at org.apache.catalina.core.ContainerBase.addChildInt >>>> ernal(ContainerBase.java:791) >>>> at org.apache.catalina.core.ContainerBase.addChild(Co >> ntainerBase.java:771) >>>> at org.apache.catalina.core.StandardHost.addChild(Sta >> ndardHost.java:546) >>>> at org.apache.catalina.startup.HostConfig.deployWAR(H >> ostConfig.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(HostC onfig.java:1277) >>>> at org.apache.catalina.startup.HostConfig.lifecycleEv >>>> ent(HostConfig.java:321) >>>> at org.apache.catalina.util.LifecycleSupport.fireLife >>>> cycleEvent(LifecycleSupport.java:119) >>>> at org.apache.catalina.core.ContainerBase.start(Conta >> inerBase.java:1053) >>>> at org.apache.catalina.core.StandardHost.start(Standa rdHost.java:785) >>>> at org.apache.catalina.core.ContainerBase.start(Conta >> inerBase.java:1045) >>>> at org.apache.catalina.core.StandardEngine.start(Stan >> dardEngine.java:445) >>>> at org.apache.catalina.core.StandardService.start(Sta >>>> ndardService.java:519) >>>> at org.apache.catalina.core.StandardServer.start(Stan >> dardServer.java:710) >>>> at org.apache.catalina.startup.Catalina.start(Catalina.java:581) >>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>>> at sun.reflect.NativeMethodAccessorImpl.invoke(Native >>>> MethodAccessorImpl.java:39) >>>> at sun.reflect.DelegatingMethodAccessorImpl.invoke(De >>>> legatingMethodAccessorImpl.java:25) >>>> at java.lang.reflect.Method.invoke(Method.java:597) >>>> at org.apache.catalina.startup.Bootstrap.start(Bootst rap.java:289) >>>> at org.apache.catalina.startup.Bootstrap.main(Bootstr ap.java:414) >>>> 20-dec-2010 14:47:17 org.apache.catalina.core.StandardContext start >>>> SEVERE: Error listenerStart >>>> >>>> If I remove the Spring Security configuration, the same web service runs >>>> fine. BTW, there's nothing special about the Spring Security >> configuration, >>>> it uses the default specified in the Spring Flex user guide. The web >> service >>>> configuration is very standard and looks like this: >>>> >>>> <jaxws:endpoint >>>> id="testWS" >>>> implementor="com.anonymous.TestWS" >>>> address="/test" /> >>>> >>>> Did anyone experience such a problem or can provide any guidance on how >> to >>>> solve this, because we obviously can't just disable the Spring Security >>>> configuration. >>>> >>>> Best regards, >>>> >>>> Tijs >> >>
