[
https://issues.apache.org/jira/browse/CXF-1663?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Daniel Kulp resolved CXF-1663.
------------------------------
Resolution: Fixed
Fix Version/s: 2.0.8
2.1.2
Assignee: Daniel Kulp
> Attempting to use a Spring configured HTTPConduit causing compatability
> problems with Spring 2.5.4 testing framework
> --------------------------------------------------------------------------------------------------------------------
>
> Key: CXF-1663
> URL: https://issues.apache.org/jira/browse/CXF-1663
> Project: CXF
> Issue Type: Bug
> Components: Transports
> Affects Versions: 2.0.5
> Reporter: James Kavanagh
> Assignee: Daniel Kulp
> Priority: Minor
> Fix For: 2.1.2, 2.0.8
>
>
> Hi there,
> I'm attempting to run some integration tests with a spring configured HTTP
> conduit:
> <http:conduit name="*.http-conduit">
> <http:tlsClientParameters secureSocketProtocol="SSL">
> <sec:keyManagers keyPassword="0123456789">
> <sec:keyStore type="PKCS12" password="0123456789"
> file="src/test/resources/keystores/client.p12"/>
> </sec:keyManagers>
> <sec:trustManagers>
> <sec:keyStore type="JKS" password="0123456789"
> file="src/test/resources/keystores/truststore.jks" />
> </sec:trustManagers>
> <sec:cipherSuitesFilter>
> <!-- these filters ensure that a ciphersuite with
> export-suitable or null encryption is used,
> but exclude anonymous Diffie-Hellman key change as
> this is vulnerable to man-in-the-middle attacks -->
> <sec:include>.*_EXPORT_.*</sec:include>
> <sec:include>.*_EXPORT1024_.*</sec:include>
> <sec:include>.*_WITH_DES_.*</sec:include>
> <sec:include>.*_WITH_NULL_.*</sec:include>
> <sec:exclude>.*_DH_anon_.*</sec:exclude>
> </sec:cipherSuitesFilter>
> </http:tlsClientParameters>
> </http:conduit>
> My test class is using JUnit 4 annotations and I'm also extending from
> AbstractJUnit4SpringContextTests which as you may know automatically loads
> the spring context for you with autowiring turned on. The problem I'm having
> is that HTTPConduit declares some of its methods with the @Resource
> annotation which Spring then attempts to resolved dependencies for and fails.
> The issue is that the HTTPConduit class does not need these dependencies
> injected in order to function correctly so I guess I'm wondering why they are
> annotated as such. Is this necessary?
> If so is there anything I can do to work around this problem?
> Here's a sample stack trace to illustrated the problem that occurs:
> javax.xml.ws.soap.SOAPFaultException: Error creating bean with name
> '*.http-conduit': Injection of resource methods failed; nested exception is
> org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique
> bean of type [org.apache.cxf.configuration.security.AuthorizationPolicy] is
> defined: Unsatisfied dependency of type [class
> org.apache.cxf.configuration.security.AuthorizationPolicy]: expected at least
> 1 matching bean
> at
> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:211)
> at $Proxy54.getAccountDetails(Unknown Source)
> at
> com.sportex.regpay.payment.mtapi.transfers.TransferFundsIntegrationTest.performTransferCreditSuccessfulWithGBP(TransferFundsIntegrationTest.java:97)
> 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.springframework.test.context.junit4.SpringTestMethod.invoke(SpringTestMethod.java:163)
> at
> org.springframework.test.context.junit4.SpringMethodRoadie.runTestMethod(SpringMethodRoadie.java:233)
> at
> org.springframework.test.context.junit4.SpringMethodRoadie$RunBeforesThenTestThenAfters.run(SpringMethodRoadie.java:333)
> at
> org.springframework.test.context.junit4.SpringMethodRoadie.runWithRepetitions(SpringMethodRoadie.java:217)
> at
> org.springframework.test.context.junit4.SpringMethodRoadie.runTest(SpringMethodRoadie.java:197)
> at
> org.springframework.test.context.junit4.SpringMethodRoadie.run(SpringMethodRoadie.java:143)
> at
> org.springframework.test.context.junit4.SpringJUnit4ClassRunner.invokeTestMethod(SpringJUnit4ClassRunner.java:142)
> at
> org.junit.internal.runners.JUnit4ClassRunner.runMethods(JUnit4ClassRunner.java:51)
> at
> org.junit.internal.runners.JUnit4ClassRunner$1.run(JUnit4ClassRunner.java:44)
> at
> org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:27)
> at
> org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:37)
> at
> org.junit.internal.runners.JUnit4ClassRunner.run(JUnit4ClassRunner.java:42)
> at
> org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:38)
> at
> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
> Caused by: org.springframework.beans.factory.BeanCreationException: Error
> creating bean with name '*.http-conduit': Injection of resource methods
> failed; nested exception is
> org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique
> bean of type [org.apache.cxf.configuration.security.AuthorizationPolicy] is
> defined: Unsatisfied dependency of type [class
> org.apache.cxf.configuration.security.AuthorizationPolicy]: expected at least
> 1 matching bean
> at
> org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:306)
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:996)
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.configureBean(AbstractAutowireCapableBeanFactory.java:283)
> at
> org.springframework.beans.factory.wiring.BeanConfigurerSupport.configureBean(BeanConfigurerSupport.java:155)
> at
> org.apache.cxf.configuration.spring.ConfigurerImpl.configureBean(ConfigurerImpl.java:114)
> at
> org.apache.cxf.configuration.spring.ConfigurerImpl.configureWithWildCard(ConfigurerImpl.java:134)
> at
> org.apache.cxf.configuration.spring.ConfigurerImpl.configureBean(ConfigurerImpl.java:101)
> at
> org.apache.cxf.configuration.spring.ConfigurerImpl.configureBean(ConfigurerImpl.java:84)
> at
> org.apache.cxf.transport.http.AbstractHTTPTransportFactory.configure(AbstractHTTPTransportFactory.java:223)
> at
> org.apache.cxf.transport.http.AbstractHTTPTransportFactory.getConduit(AbstractHTTPTransportFactory.java:163)
> at
> org.apache.cxf.transport.http.AbstractHTTPTransportFactory.getConduit(AbstractHTTPTransportFactory.java:145)
> at
> org.apache.cxf.endpoint.AbstractConduitSelector.getSelectedConduit(AbstractConduitSelector.java:73)
> at
> org.apache.cxf.endpoint.UpfrontConduitSelector.prepare(UpfrontConduitSelector.java:61)
> at
> org.apache.cxf.endpoint.ClientImpl.prepareConduitSelector(ClientImpl.java:452)
> at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:273)
> at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:222)
> at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
> at
> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:170)
> ... 24 more
> Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException:
> No unique bean of type
> [org.apache.cxf.configuration.security.AuthorizationPolicy] is defined:
> Unsatisfied dependency of type [class
> org.apache.cxf.configuration.security.AuthorizationPolicy]: expected at least
> 1 matching bean
> at
> org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:613)
> at
> org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:423)
> at
> org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:502)
> at
> org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:192)
> at
> org.springframework.beans.factory.annotation.InjectionMetadata.injectMethods(InjectionMetadata.java:117)
> at
> org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:303)
> ... 41 more
> Many thanks,
> James K
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.