Hi Willem. You beautie! That did the trick. Obviously its not the most elegant solution, but it'll do until CXF becomes a bit more Spring 2.5 friendly :)
Thanks. willem.jiang wrote: > > Hi Graham, > > Yes , you could define a > org.apache.cxf.jaxws.context.WebServiceContextImpl in the spring > configuration to let this bean be injected into your implementor. > But I don't know if CXF's resource injector will override the spring > WebServiceContext instance. > > > Willem. > > > gweb79 wrote: >> Thanks for that Willem. Unfortunately I do not know enough about how CXF >> works to provide any help on the resource resolver. I just thought that I >> might be able to add a bean definition for the WebServiceContext >> implementation to the spring beans configuration to get it working. >> >> Is there any other way I could access the message context or >> httpservletrequest from my web service implementation? >> >> I gave Spring 2.5 a go to see whether using the new annotations to wire >> the >> beans together was better or not than xml. Until now it was proving to be >> an >> excellent option. >> >> >> >> willem.jiang wrote: >> >>> Hi Graham, >>> >>> I can show your the code how does CXF inject the WebServiceContext. >>> It's the JaxWsServerFactoryBean[1]'s injectResources method. >>> Maybe you can find a way to configure the resource resolver with this >>> code. >>> >>> BTW, Why are you want to use Spring 2.5 ? >>> CXF can work with Spring 2.0.x more peacefully :) >>> >>> [1] >>> https://svn.apache.org/repos/asf/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/JaxWsServerFactoryBean.java >>> >>> Willem. >>> >>> gweb79 wrote: >>> >>>> Hi Willem, >>>> >>>> Thanks, but I was hoping to not have to turn off the annotation >>>> injection >>>> for spring, that would mean quite a lot of work re-configuring all my >>>> beans. >>>> Is there no other way? Maybe by configuring spring so that it knows >>>> about >>>> WebServiceContext? >>>> >>>> Thanks, >>>> Graham >>>> >>>> >>>> willem.jiang wrote: >>>> >>>> >>>>> Hi , >>>>> >>>>> It looks like Spring 2.5 will take the charge of the dependency >>>>> injection of the WebServiceContext. >>>>> CXF can do it with itself Resource Injector, but Spring can't resolve >>>>> the WebServiceContext instance. >>>>> >>>>> If you can turn off the Spring 2.5 annotation resource injection >>>>> feature >>>>> , I think you can resolve this issue. >>>>> >>>>> Willem. >>>>> gweb79 wrote: >>>>> >>>>> >>>>>> Hello, >>>>>> >>>>>> Setup: >>>>>> Spring 2.5 (Configured using annotations) >>>>>> CXF 2.0.3 >>>>>> Tomcat 6.0.14 >>>>>> >>>>>> >>>>>> I need to access the HTTPServletRequest from the web service impl >>>>>> class. >>>>>> I >>>>>> have had a look at all the docs which say to add the code: >>>>>> >>>>>> @Resource >>>>>> private WebServiceContext context; >>>>>> >>>>>> which the request can be retrieved. However in my setup I get the >>>>>> following >>>>>> error: >>>>>> >>>>>> Caused by: >>>>>> org.springframework.beans.factory.NoSuchBeanDefinitionException: >>>>>> No unique bean of type [javax.xml.ws.WebServiceContext] is defined: >>>>>> Unsatisfied dependency of type [interface >>>>>> javax.xml.ws.WebServiceContext]: >>>>>> expected at least 1 matching bean >>>>>> at >>>>>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveDependency(AbstractAutowireCapableBeanFactory.java:417) >>>>>> at >>>>>> org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:384) >>>>>> at >>>>>> org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:463) >>>>>> at >>>>>> org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:123) >>>>>> at >>>>>> org.springframework.beans.factory.annotation.InjectionMetadata.injectFields(InjectionMetadata.java:61) >>>>>> at >>>>>> org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessAfterInstantiation(CommonAnnotationBeanPostProcessor.java:259) >>>>>> ... 53 more >>>>>> >>>>>> >>>>>> Can anybody explain what the problem is? The docs make it seem very >>>>>> simple. >>>>>> I have setup the web.xml with >>>>>> org.springframework.web.context.request.RequestContextListener. >>>>>> >>>>>> If this is not possible with my setup is there any other way to >>>>>> access >>>>>> the >>>>>> request from the web service? I need to access the user information >>>>>> in >>>>>> multiple places for each individual request? >>>>>> >>>>>> Thanks. >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>> >>>>> >>>> >>>> >>> >>> >> >> > > > -- View this message in context: http://www.nabble.com/Cannot-get-WebServiceContext-or-access-the-httpservletrequest-tp14657900p14659562.html Sent from the cxf-user mailing list archive at Nabble.com.
