Re: Cannot get WebServiceContext or access the httpservletrequest
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.a
Re: Cannot get WebServiceContext or access the httpservletrequest
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.
Re: Cannot get WebServiceContext or access the httpservletrequest
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-tp14657900p14658904.html Sent from the cxf-user mailing list archive at Nabble.com.
Re: Cannot get WebServiceContext or access the httpservletrequest
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.
Re: Cannot get WebServiceContext or access the httpservletrequest
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-tp14657900p14658297.html Sent from the cxf-user mailing list archive at Nabble.com.
Re: Cannot get WebServiceContext or access the httpservletrequest
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.
Cannot get WebServiceContext or access the httpservletrequest
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-tp14657900p14657900.html Sent from the cxf-user mailing list archive at Nabble.com.