You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by David Karlsen <da...@gmail.com> on 2014/07/01 15:35:34 UTC

Getting hold of JAX-RS MessageContext

Looking at
http://cxf.apache.org/docs/jax-rs-and-jax-ws.html "Dealing with context", a
MessageContext is @Resource injected into the example.
I guess this is a
http://cxf.apache.org/javadoc/latest-3.0.x/org/apache/cxf/jaxrs/ext/MessageContext.html
with it's imp:
http://cxf.apache.org/javadoc/latest-3.0.x/org/apache/cxf/jaxrs/ext/MessageContextImpl.html
.
However i don't see a default constructor for it (it requires a Message),
and such I don't understand how it gets injected in the example - am I
missing out of something?
I need to create a utility which get's access to the CXF internal contexts,
to get access to ResourceInfo, http headers and so on.




-- 
--
David J. M. Karlsen - http://www.linkedin.com/in/davidkarlsen

Re: Getting hold of JAX-RS MessageContext

Posted by Sergey Beryozkin <sb...@gmail.com>.
Hi,
On 03/07/14 13:54, David Karlsen wrote:
> OK, that is a strange requirement :) (method annotated with @Context and
> matching by having a single argument, and of type MessageContext would be
> better IMHO).
I'm not sure it that strange a requirement. While it is likely a 
coincidence, you do not have a setJaxwsContext method either :-).

setMessageContext(MessageContext ct)

reads a bit better IMHO but I agree it should be relaxed, wee also used 
to have this restriction:

@PathParam("id")
public void setId(String id) {}

where a path parameter name had to match a property name, which I 
thought was reasonable, but we relaxed it.
Same would need to be done for Context...

> Nevertheless, I changed the name, but it's still not injected (!). is a
> problem that this is a normal bean, and not the JAX-RS service class (e.g.
> which beans get inspected for injection, all - or just service beans?) Do
> you have a postprocessor or something to point be to?
>
It is injected into valid JAX-RS resource classes, in your case you do 
not have JAX-RS annotations at all, apart from @Context which is not 
sufficient

Cheers, Sergey
>
> 2014-07-03 14:28 GMT+02:00 Sergey Beryozkin <sb...@gmail.com>:
>
>> The method name has to be "setMessageContext" :-)
>> I will probably need to relax it the same way it was done for request
>> parameters but for now the type name should be the setter property name
>>
>> Sergey
>>
>> On 03/07/14 13:16, David Karlsen wrote:
>>
>>> Woups, pressed enter to fast, as stated in original mail:
>>>
>>> @Context
>>>        public void setJaxrsContext( MessageContext jaxrsContext )
>>>        {
>>>            this.jaxrsContext = jaxrsContext;
>>>        }
>>>
>>>
>>> 2014-07-03 14:15 GMT+02:00 David Karlsen <da...@gmail.com>:
>>>
>>>   But I already have as stated in the mail:
>>>>
>>>>
>>>>
>>>> 2014-07-03 13:57 GMT+02:00 Sergey Beryozkin <sb...@gmail.com>:
>>>>
>>>> On 03/07/14 12:49, David Karlsen wrote:
>>>>
>>>>>
>>>>>   Sorry, I was a bit quick (or have done some other changes in the mean
>>>>>> time
>>>>>> to break it).
>>>>>> I have this:
>>>>>> @Component
>>>>>> public class ContextHolder
>>>>>> {
>>>>>>        private final Logger logger = LoggerFactory.getLogger(
>>>>>> getClass() );
>>>>>>        private WebServiceContext webServiceContext;
>>>>>>        private MessageContext jaxrsContext;
>>>>>>
>>>>>>        @Inject
>>>>>>        public void setWebServiceContext( WebServiceContext
>>>>>> webServiceContext )
>>>>>>        {
>>>>>>            this.webServiceContext = webServiceContext;
>>>>>>        }
>>>>>>
>>>>>>        @Context
>>>>>>        public void setJaxrsContext( MessageContext jaxrsContext )
>>>>>>        {
>>>>>>            this.jaxrsContext = jaxrsContext;
>>>>>>        }
>>>>>>
>>>>>>
>>>>>> but jaxrsContext is null!
>>>>>>
>>>>>> Do I need to wire up a bean as well?
>>>>>>
>>>>>>
>>>>> You need to have 'setMessageContext'.
>>>>> Cheers, Sergey
>>>>>
>>>>>
>>>>>
>>>>>> 2014-07-02 12:07 GMT+02:00 Sergey Beryozkin <sb...@gmail.com>:
>>>>>>
>>>>>>    On 01/07/14 16:33, David Karlsen wrote:
>>>>>>
>>>>>>>
>>>>>>>    Great - that worked just fine!
>>>>>>>
>>>>>>>> Maybe the wiki should be updated?
>>>>>>>>
>>>>>>>>
>>>>>>>>   Sure, I should've done it earlier, Colm reported it too.
>>>>>>> I updated the migration page and that wiki page
>>>>>>>
>>>>>>> Cheers, Sergey
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>   2014-07-01 16:27 GMT+02:00 Sergey Beryozkin <sb...@gmail.com>:
>>>>>>>>
>>>>>>>>     Hi
>>>>>>>>
>>>>>>>>
>>>>>>>>> On 01/07/14 14:35, David Karlsen wrote:
>>>>>>>>>
>>>>>>>>>     Looking at
>>>>>>>>>
>>>>>>>>>   http://cxf.apache.org/docs/jax-rs-and-jax-ws.html "Dealing with
>>>>>>>>>> context", a
>>>>>>>>>> MessageContext is @Resource injected into the example.
>>>>>>>>>> I guess this is a
>>>>>>>>>> http://cxf.apache.org/javadoc/latest-3.0.x/org/apache/cxf/
>>>>>>>>>> jaxrs/ext/MessageContext.html
>>>>>>>>>> with it's imp:
>>>>>>>>>> http://cxf.apache.org/javadoc/latest-3.0.x/org/apache/cxf/
>>>>>>>>>> jaxrs/ext/MessageContextImpl.html
>>>>>>>>>> .
>>>>>>>>>> However i don't see a default constructor for it (it requires a
>>>>>>>>>> Message),
>>>>>>>>>> and such I don't understand how it gets injected in the example -
>>>>>>>>>> am
>>>>>>>>>> I
>>>>>>>>>> missing out of something?
>>>>>>>>>> I need to create a utility which get's access to the CXF internal
>>>>>>>>>> contexts,
>>>>>>>>>> to get access to ResourceInfo, http headers and so on.
>>>>>>>>>>
>>>>>>>>>>      Starting from 3.0.0 it needs a @Context annotation. Supporting
>>>>>>>>>> @Resource
>>>>>>>>>>
>>>>>>>>>>    annotations is limited to 2.7.x only. If it is a singleton then a
>>>>>>>>>>
>>>>>>>>> thread
>>>>>>>>> safe proxy is injected at startup and then MessageContextImpl
>>>>>>>>> instances
>>>>>>>>> are
>>>>>>>>> inserted into it at runtime
>>>>>>>>>
>>>>>>>>> Thanks, Sergey
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>> --
>>>>> Sergey Beryozkin
>>>>>
>>>>> Talend Community Coders
>>>>> http://coders.talend.com/
>>>>>
>>>>> Blog: http://sberyozkin.blogspot.com
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> --
>>>> David J. M. Karlsen - http://www.linkedin.com/in/davidkarlsen
>>>>
>>>>
>>>
>>>
>>>
>>
>>
>
>


-- 
Sergey Beryozkin

Talend Community Coders
http://coders.talend.com/

Blog: http://sberyozkin.blogspot.com

Re: Getting hold of JAX-RS MessageContext

Posted by David Karlsen <da...@gmail.com>.
OK, that is a strange requirement :) (method annotated with @Context and
matching by having a single argument, and of type MessageContext would be
better IMHO).
Nevertheless, I changed the name, but it's still not injected (!). is a
problem that this is a normal bean, and not the JAX-RS service class (e.g.
which beans get inspected for injection, all - or just service beans?) Do
you have a postprocessor or something to point be to?


2014-07-03 14:28 GMT+02:00 Sergey Beryozkin <sb...@gmail.com>:

> The method name has to be "setMessageContext" :-)
> I will probably need to relax it the same way it was done for request
> parameters but for now the type name should be the setter property name
>
> Sergey
>
> On 03/07/14 13:16, David Karlsen wrote:
>
>> Woups, pressed enter to fast, as stated in original mail:
>>
>> @Context
>>       public void setJaxrsContext( MessageContext jaxrsContext )
>>       {
>>           this.jaxrsContext = jaxrsContext;
>>       }
>>
>>
>> 2014-07-03 14:15 GMT+02:00 David Karlsen <da...@gmail.com>:
>>
>>  But I already have as stated in the mail:
>>>
>>>
>>>
>>> 2014-07-03 13:57 GMT+02:00 Sergey Beryozkin <sb...@gmail.com>:
>>>
>>> On 03/07/14 12:49, David Karlsen wrote:
>>>
>>>>
>>>>  Sorry, I was a bit quick (or have done some other changes in the mean
>>>>> time
>>>>> to break it).
>>>>> I have this:
>>>>> @Component
>>>>> public class ContextHolder
>>>>> {
>>>>>       private final Logger logger = LoggerFactory.getLogger(
>>>>> getClass() );
>>>>>       private WebServiceContext webServiceContext;
>>>>>       private MessageContext jaxrsContext;
>>>>>
>>>>>       @Inject
>>>>>       public void setWebServiceContext( WebServiceContext
>>>>> webServiceContext )
>>>>>       {
>>>>>           this.webServiceContext = webServiceContext;
>>>>>       }
>>>>>
>>>>>       @Context
>>>>>       public void setJaxrsContext( MessageContext jaxrsContext )
>>>>>       {
>>>>>           this.jaxrsContext = jaxrsContext;
>>>>>       }
>>>>>
>>>>>
>>>>> but jaxrsContext is null!
>>>>>
>>>>> Do I need to wire up a bean as well?
>>>>>
>>>>>
>>>> You need to have 'setMessageContext'.
>>>> Cheers, Sergey
>>>>
>>>>
>>>>
>>>>> 2014-07-02 12:07 GMT+02:00 Sergey Beryozkin <sb...@gmail.com>:
>>>>>
>>>>>   On 01/07/14 16:33, David Karlsen wrote:
>>>>>
>>>>>>
>>>>>>   Great - that worked just fine!
>>>>>>
>>>>>>> Maybe the wiki should be updated?
>>>>>>>
>>>>>>>
>>>>>>>  Sure, I should've done it earlier, Colm reported it too.
>>>>>> I updated the migration page and that wiki page
>>>>>>
>>>>>> Cheers, Sergey
>>>>>>
>>>>>>
>>>>>>
>>>>>>  2014-07-01 16:27 GMT+02:00 Sergey Beryozkin <sb...@gmail.com>:
>>>>>>>
>>>>>>>    Hi
>>>>>>>
>>>>>>>
>>>>>>>> On 01/07/14 14:35, David Karlsen wrote:
>>>>>>>>
>>>>>>>>    Looking at
>>>>>>>>
>>>>>>>>  http://cxf.apache.org/docs/jax-rs-and-jax-ws.html "Dealing with
>>>>>>>>> context", a
>>>>>>>>> MessageContext is @Resource injected into the example.
>>>>>>>>> I guess this is a
>>>>>>>>> http://cxf.apache.org/javadoc/latest-3.0.x/org/apache/cxf/
>>>>>>>>> jaxrs/ext/MessageContext.html
>>>>>>>>> with it's imp:
>>>>>>>>> http://cxf.apache.org/javadoc/latest-3.0.x/org/apache/cxf/
>>>>>>>>> jaxrs/ext/MessageContextImpl.html
>>>>>>>>> .
>>>>>>>>> However i don't see a default constructor for it (it requires a
>>>>>>>>> Message),
>>>>>>>>> and such I don't understand how it gets injected in the example -
>>>>>>>>> am
>>>>>>>>> I
>>>>>>>>> missing out of something?
>>>>>>>>> I need to create a utility which get's access to the CXF internal
>>>>>>>>> contexts,
>>>>>>>>> to get access to ResourceInfo, http headers and so on.
>>>>>>>>>
>>>>>>>>>     Starting from 3.0.0 it needs a @Context annotation. Supporting
>>>>>>>>> @Resource
>>>>>>>>>
>>>>>>>>>   annotations is limited to 2.7.x only. If it is a singleton then a
>>>>>>>>>
>>>>>>>> thread
>>>>>>>> safe proxy is injected at startup and then MessageContextImpl
>>>>>>>> instances
>>>>>>>> are
>>>>>>>> inserted into it at runtime
>>>>>>>>
>>>>>>>> Thanks, Sergey
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>>
>>>> --
>>>> Sergey Beryozkin
>>>>
>>>> Talend Community Coders
>>>> http://coders.talend.com/
>>>>
>>>> Blog: http://sberyozkin.blogspot.com
>>>>
>>>>
>>>
>>>
>>> --
>>> --
>>> David J. M. Karlsen - http://www.linkedin.com/in/davidkarlsen
>>>
>>>
>>
>>
>>
>
>


-- 
--
David J. M. Karlsen - http://www.linkedin.com/in/davidkarlsen

Re: Getting hold of JAX-RS MessageContext

Posted by Sergey Beryozkin <sb...@gmail.com>.
The method name has to be "setMessageContext" :-)
I will probably need to relax it the same way it was done for request 
parameters but for now the type name should be the setter property name

Sergey
On 03/07/14 13:16, David Karlsen wrote:
> Woups, pressed enter to fast, as stated in original mail:
>
> @Context
>       public void setJaxrsContext( MessageContext jaxrsContext )
>       {
>           this.jaxrsContext = jaxrsContext;
>       }
>
>
> 2014-07-03 14:15 GMT+02:00 David Karlsen <da...@gmail.com>:
>
>> But I already have as stated in the mail:
>>
>>
>>
>> 2014-07-03 13:57 GMT+02:00 Sergey Beryozkin <sb...@gmail.com>:
>>
>> On 03/07/14 12:49, David Karlsen wrote:
>>>
>>>> Sorry, I was a bit quick (or have done some other changes in the mean
>>>> time
>>>> to break it).
>>>> I have this:
>>>> @Component
>>>> public class ContextHolder
>>>> {
>>>>       private final Logger logger = LoggerFactory.getLogger( getClass() );
>>>>       private WebServiceContext webServiceContext;
>>>>       private MessageContext jaxrsContext;
>>>>
>>>>       @Inject
>>>>       public void setWebServiceContext( WebServiceContext
>>>> webServiceContext )
>>>>       {
>>>>           this.webServiceContext = webServiceContext;
>>>>       }
>>>>
>>>>       @Context
>>>>       public void setJaxrsContext( MessageContext jaxrsContext )
>>>>       {
>>>>           this.jaxrsContext = jaxrsContext;
>>>>       }
>>>>
>>>>
>>>> but jaxrsContext is null!
>>>>
>>>> Do I need to wire up a bean as well?
>>>>
>>>
>>> You need to have 'setMessageContext'.
>>> Cheers, Sergey
>>>
>>>
>>>>
>>>> 2014-07-02 12:07 GMT+02:00 Sergey Beryozkin <sb...@gmail.com>:
>>>>
>>>>   On 01/07/14 16:33, David Karlsen wrote:
>>>>>
>>>>>   Great - that worked just fine!
>>>>>> Maybe the wiki should be updated?
>>>>>>
>>>>>>
>>>>> Sure, I should've done it earlier, Colm reported it too.
>>>>> I updated the migration page and that wiki page
>>>>>
>>>>> Cheers, Sergey
>>>>>
>>>>>
>>>>>
>>>>>> 2014-07-01 16:27 GMT+02:00 Sergey Beryozkin <sb...@gmail.com>:
>>>>>>
>>>>>>    Hi
>>>>>>
>>>>>>>
>>>>>>> On 01/07/14 14:35, David Karlsen wrote:
>>>>>>>
>>>>>>>    Looking at
>>>>>>>
>>>>>>>> http://cxf.apache.org/docs/jax-rs-and-jax-ws.html "Dealing with
>>>>>>>> context", a
>>>>>>>> MessageContext is @Resource injected into the example.
>>>>>>>> I guess this is a
>>>>>>>> http://cxf.apache.org/javadoc/latest-3.0.x/org/apache/cxf/
>>>>>>>> jaxrs/ext/MessageContext.html
>>>>>>>> with it's imp:
>>>>>>>> http://cxf.apache.org/javadoc/latest-3.0.x/org/apache/cxf/
>>>>>>>> jaxrs/ext/MessageContextImpl.html
>>>>>>>> .
>>>>>>>> However i don't see a default constructor for it (it requires a
>>>>>>>> Message),
>>>>>>>> and such I don't understand how it gets injected in the example - am
>>>>>>>> I
>>>>>>>> missing out of something?
>>>>>>>> I need to create a utility which get's access to the CXF internal
>>>>>>>> contexts,
>>>>>>>> to get access to ResourceInfo, http headers and so on.
>>>>>>>>
>>>>>>>>     Starting from 3.0.0 it needs a @Context annotation. Supporting
>>>>>>>> @Resource
>>>>>>>>
>>>>>>>>   annotations is limited to 2.7.x only. If it is a singleton then a
>>>>>>> thread
>>>>>>> safe proxy is injected at startup and then MessageContextImpl
>>>>>>> instances
>>>>>>> are
>>>>>>> inserted into it at runtime
>>>>>>>
>>>>>>> Thanks, Sergey
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>
>>> --
>>> Sergey Beryozkin
>>>
>>> Talend Community Coders
>>> http://coders.talend.com/
>>>
>>> Blog: http://sberyozkin.blogspot.com
>>>
>>
>>
>>
>> --
>> --
>> David J. M. Karlsen - http://www.linkedin.com/in/davidkarlsen
>>
>
>
>



Re: Getting hold of JAX-RS MessageContext

Posted by David Karlsen <da...@gmail.com>.
Woups, pressed enter to fast, as stated in original mail:

@Context
     public void setJaxrsContext( MessageContext jaxrsContext )
     {
         this.jaxrsContext = jaxrsContext;
     }


2014-07-03 14:15 GMT+02:00 David Karlsen <da...@gmail.com>:

> But I already have as stated in the mail:
>
>
>
> 2014-07-03 13:57 GMT+02:00 Sergey Beryozkin <sb...@gmail.com>:
>
> On 03/07/14 12:49, David Karlsen wrote:
>>
>>> Sorry, I was a bit quick (or have done some other changes in the mean
>>> time
>>> to break it).
>>> I have this:
>>> @Component
>>> public class ContextHolder
>>> {
>>>      private final Logger logger = LoggerFactory.getLogger( getClass() );
>>>      private WebServiceContext webServiceContext;
>>>      private MessageContext jaxrsContext;
>>>
>>>      @Inject
>>>      public void setWebServiceContext( WebServiceContext
>>> webServiceContext )
>>>      {
>>>          this.webServiceContext = webServiceContext;
>>>      }
>>>
>>>      @Context
>>>      public void setJaxrsContext( MessageContext jaxrsContext )
>>>      {
>>>          this.jaxrsContext = jaxrsContext;
>>>      }
>>>
>>>
>>> but jaxrsContext is null!
>>>
>>> Do I need to wire up a bean as well?
>>>
>>
>> You need to have 'setMessageContext'.
>> Cheers, Sergey
>>
>>
>>>
>>> 2014-07-02 12:07 GMT+02:00 Sergey Beryozkin <sb...@gmail.com>:
>>>
>>>  On 01/07/14 16:33, David Karlsen wrote:
>>>>
>>>>  Great - that worked just fine!
>>>>> Maybe the wiki should be updated?
>>>>>
>>>>>
>>>> Sure, I should've done it earlier, Colm reported it too.
>>>> I updated the migration page and that wiki page
>>>>
>>>> Cheers, Sergey
>>>>
>>>>
>>>>
>>>>> 2014-07-01 16:27 GMT+02:00 Sergey Beryozkin <sb...@gmail.com>:
>>>>>
>>>>>   Hi
>>>>>
>>>>>>
>>>>>> On 01/07/14 14:35, David Karlsen wrote:
>>>>>>
>>>>>>   Looking at
>>>>>>
>>>>>>> http://cxf.apache.org/docs/jax-rs-and-jax-ws.html "Dealing with
>>>>>>> context", a
>>>>>>> MessageContext is @Resource injected into the example.
>>>>>>> I guess this is a
>>>>>>> http://cxf.apache.org/javadoc/latest-3.0.x/org/apache/cxf/
>>>>>>> jaxrs/ext/MessageContext.html
>>>>>>> with it's imp:
>>>>>>> http://cxf.apache.org/javadoc/latest-3.0.x/org/apache/cxf/
>>>>>>> jaxrs/ext/MessageContextImpl.html
>>>>>>> .
>>>>>>> However i don't see a default constructor for it (it requires a
>>>>>>> Message),
>>>>>>> and such I don't understand how it gets injected in the example - am
>>>>>>> I
>>>>>>> missing out of something?
>>>>>>> I need to create a utility which get's access to the CXF internal
>>>>>>> contexts,
>>>>>>> to get access to ResourceInfo, http headers and so on.
>>>>>>>
>>>>>>>    Starting from 3.0.0 it needs a @Context annotation. Supporting
>>>>>>> @Resource
>>>>>>>
>>>>>>>  annotations is limited to 2.7.x only. If it is a singleton then a
>>>>>> thread
>>>>>> safe proxy is injected at startup and then MessageContextImpl
>>>>>> instances
>>>>>> are
>>>>>> inserted into it at runtime
>>>>>>
>>>>>> Thanks, Sergey
>>>>>>
>>>>>>
>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>
>>>
>>>
>>
>> --
>> Sergey Beryozkin
>>
>> Talend Community Coders
>> http://coders.talend.com/
>>
>> Blog: http://sberyozkin.blogspot.com
>>
>
>
>
> --
> --
> David J. M. Karlsen - http://www.linkedin.com/in/davidkarlsen
>



-- 
--
David J. M. Karlsen - http://www.linkedin.com/in/davidkarlsen

Re: Getting hold of JAX-RS MessageContext

Posted by David Karlsen <da...@gmail.com>.
But I already have as stated in the mail:



2014-07-03 13:57 GMT+02:00 Sergey Beryozkin <sb...@gmail.com>:

> On 03/07/14 12:49, David Karlsen wrote:
>
>> Sorry, I was a bit quick (or have done some other changes in the mean time
>> to break it).
>> I have this:
>> @Component
>> public class ContextHolder
>> {
>>      private final Logger logger = LoggerFactory.getLogger( getClass() );
>>      private WebServiceContext webServiceContext;
>>      private MessageContext jaxrsContext;
>>
>>      @Inject
>>      public void setWebServiceContext( WebServiceContext
>> webServiceContext )
>>      {
>>          this.webServiceContext = webServiceContext;
>>      }
>>
>>      @Context
>>      public void setJaxrsContext( MessageContext jaxrsContext )
>>      {
>>          this.jaxrsContext = jaxrsContext;
>>      }
>>
>>
>> but jaxrsContext is null!
>>
>> Do I need to wire up a bean as well?
>>
>
> You need to have 'setMessageContext'.
> Cheers, Sergey
>
>
>>
>> 2014-07-02 12:07 GMT+02:00 Sergey Beryozkin <sb...@gmail.com>:
>>
>>  On 01/07/14 16:33, David Karlsen wrote:
>>>
>>>  Great - that worked just fine!
>>>> Maybe the wiki should be updated?
>>>>
>>>>
>>> Sure, I should've done it earlier, Colm reported it too.
>>> I updated the migration page and that wiki page
>>>
>>> Cheers, Sergey
>>>
>>>
>>>
>>>> 2014-07-01 16:27 GMT+02:00 Sergey Beryozkin <sb...@gmail.com>:
>>>>
>>>>   Hi
>>>>
>>>>>
>>>>> On 01/07/14 14:35, David Karlsen wrote:
>>>>>
>>>>>   Looking at
>>>>>
>>>>>> http://cxf.apache.org/docs/jax-rs-and-jax-ws.html "Dealing with
>>>>>> context", a
>>>>>> MessageContext is @Resource injected into the example.
>>>>>> I guess this is a
>>>>>> http://cxf.apache.org/javadoc/latest-3.0.x/org/apache/cxf/
>>>>>> jaxrs/ext/MessageContext.html
>>>>>> with it's imp:
>>>>>> http://cxf.apache.org/javadoc/latest-3.0.x/org/apache/cxf/
>>>>>> jaxrs/ext/MessageContextImpl.html
>>>>>> .
>>>>>> However i don't see a default constructor for it (it requires a
>>>>>> Message),
>>>>>> and such I don't understand how it gets injected in the example - am I
>>>>>> missing out of something?
>>>>>> I need to create a utility which get's access to the CXF internal
>>>>>> contexts,
>>>>>> to get access to ResourceInfo, http headers and so on.
>>>>>>
>>>>>>    Starting from 3.0.0 it needs a @Context annotation. Supporting
>>>>>> @Resource
>>>>>>
>>>>>>  annotations is limited to 2.7.x only. If it is a singleton then a
>>>>> thread
>>>>> safe proxy is injected at startup and then MessageContextImpl instances
>>>>> are
>>>>> inserted into it at runtime
>>>>>
>>>>> Thanks, Sergey
>>>>>
>>>>>
>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>
>>
>>
>
> --
> Sergey Beryozkin
>
> Talend Community Coders
> http://coders.talend.com/
>
> Blog: http://sberyozkin.blogspot.com
>



-- 
--
David J. M. Karlsen - http://www.linkedin.com/in/davidkarlsen

Re: Getting hold of JAX-RS MessageContext

Posted by Sergey Beryozkin <sb...@gmail.com>.
On 03/07/14 12:49, David Karlsen wrote:
> Sorry, I was a bit quick (or have done some other changes in the mean time
> to break it).
> I have this:
> @Component
> public class ContextHolder
> {
>      private final Logger logger = LoggerFactory.getLogger( getClass() );
>      private WebServiceContext webServiceContext;
>      private MessageContext jaxrsContext;
>
>      @Inject
>      public void setWebServiceContext( WebServiceContext webServiceContext )
>      {
>          this.webServiceContext = webServiceContext;
>      }
>
>      @Context
>      public void setJaxrsContext( MessageContext jaxrsContext )
>      {
>          this.jaxrsContext = jaxrsContext;
>      }
>
>
> but jaxrsContext is null!
>
> Do I need to wire up a bean as well?

You need to have 'setMessageContext'.
Cheers, Sergey

>
>
> 2014-07-02 12:07 GMT+02:00 Sergey Beryozkin <sb...@gmail.com>:
>
>> On 01/07/14 16:33, David Karlsen wrote:
>>
>>> Great - that worked just fine!
>>> Maybe the wiki should be updated?
>>>
>>
>> Sure, I should've done it earlier, Colm reported it too.
>> I updated the migration page and that wiki page
>>
>> Cheers, Sergey
>>
>>
>>>
>>> 2014-07-01 16:27 GMT+02:00 Sergey Beryozkin <sb...@gmail.com>:
>>>
>>>   Hi
>>>>
>>>> On 01/07/14 14:35, David Karlsen wrote:
>>>>
>>>>   Looking at
>>>>> http://cxf.apache.org/docs/jax-rs-and-jax-ws.html "Dealing with
>>>>> context", a
>>>>> MessageContext is @Resource injected into the example.
>>>>> I guess this is a
>>>>> http://cxf.apache.org/javadoc/latest-3.0.x/org/apache/cxf/
>>>>> jaxrs/ext/MessageContext.html
>>>>> with it's imp:
>>>>> http://cxf.apache.org/javadoc/latest-3.0.x/org/apache/cxf/
>>>>> jaxrs/ext/MessageContextImpl.html
>>>>> .
>>>>> However i don't see a default constructor for it (it requires a
>>>>> Message),
>>>>> and such I don't understand how it gets injected in the example - am I
>>>>> missing out of something?
>>>>> I need to create a utility which get's access to the CXF internal
>>>>> contexts,
>>>>> to get access to ResourceInfo, http headers and so on.
>>>>>
>>>>>    Starting from 3.0.0 it needs a @Context annotation. Supporting
>>>>> @Resource
>>>>>
>>>> annotations is limited to 2.7.x only. If it is a singleton then a thread
>>>> safe proxy is injected at startup and then MessageContextImpl instances
>>>> are
>>>> inserted into it at runtime
>>>>
>>>> Thanks, Sergey
>>>>
>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>
>>>
>>
>
>


-- 
Sergey Beryozkin

Talend Community Coders
http://coders.talend.com/

Blog: http://sberyozkin.blogspot.com

Re: Getting hold of JAX-RS MessageContext

Posted by David Karlsen <da...@gmail.com>.
Sorry, I was a bit quick (or have done some other changes in the mean time
to break it).
I have this:
@Component
public class ContextHolder
{
    private final Logger logger = LoggerFactory.getLogger( getClass() );
    private WebServiceContext webServiceContext;
    private MessageContext jaxrsContext;

    @Inject
    public void setWebServiceContext( WebServiceContext webServiceContext )
    {
        this.webServiceContext = webServiceContext;
    }

    @Context
    public void setJaxrsContext( MessageContext jaxrsContext )
    {
        this.jaxrsContext = jaxrsContext;
    }


but jaxrsContext is null!

Do I need to wire up a bean as well?


2014-07-02 12:07 GMT+02:00 Sergey Beryozkin <sb...@gmail.com>:

> On 01/07/14 16:33, David Karlsen wrote:
>
>> Great - that worked just fine!
>> Maybe the wiki should be updated?
>>
>
> Sure, I should've done it earlier, Colm reported it too.
> I updated the migration page and that wiki page
>
> Cheers, Sergey
>
>
>>
>> 2014-07-01 16:27 GMT+02:00 Sergey Beryozkin <sb...@gmail.com>:
>>
>>  Hi
>>>
>>> On 01/07/14 14:35, David Karlsen wrote:
>>>
>>>  Looking at
>>>> http://cxf.apache.org/docs/jax-rs-and-jax-ws.html "Dealing with
>>>> context", a
>>>> MessageContext is @Resource injected into the example.
>>>> I guess this is a
>>>> http://cxf.apache.org/javadoc/latest-3.0.x/org/apache/cxf/
>>>> jaxrs/ext/MessageContext.html
>>>> with it's imp:
>>>> http://cxf.apache.org/javadoc/latest-3.0.x/org/apache/cxf/
>>>> jaxrs/ext/MessageContextImpl.html
>>>> .
>>>> However i don't see a default constructor for it (it requires a
>>>> Message),
>>>> and such I don't understand how it gets injected in the example - am I
>>>> missing out of something?
>>>> I need to create a utility which get's access to the CXF internal
>>>> contexts,
>>>> to get access to ResourceInfo, http headers and so on.
>>>>
>>>>   Starting from 3.0.0 it needs a @Context annotation. Supporting
>>>> @Resource
>>>>
>>> annotations is limited to 2.7.x only. If it is a singleton then a thread
>>> safe proxy is injected at startup and then MessageContextImpl instances
>>> are
>>> inserted into it at runtime
>>>
>>> Thanks, Sergey
>>>
>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>
>>
>


-- 
--
David J. M. Karlsen - http://www.linkedin.com/in/davidkarlsen

Re: Getting hold of JAX-RS MessageContext

Posted by Sergey Beryozkin <sb...@gmail.com>.
On 01/07/14 16:33, David Karlsen wrote:
> Great - that worked just fine!
> Maybe the wiki should be updated?

Sure, I should've done it earlier, Colm reported it too.
I updated the migration page and that wiki page

Cheers, Sergey
>
>
> 2014-07-01 16:27 GMT+02:00 Sergey Beryozkin <sb...@gmail.com>:
>
>> Hi
>>
>> On 01/07/14 14:35, David Karlsen wrote:
>>
>>> Looking at
>>> http://cxf.apache.org/docs/jax-rs-and-jax-ws.html "Dealing with
>>> context", a
>>> MessageContext is @Resource injected into the example.
>>> I guess this is a
>>> http://cxf.apache.org/javadoc/latest-3.0.x/org/apache/cxf/
>>> jaxrs/ext/MessageContext.html
>>> with it's imp:
>>> http://cxf.apache.org/javadoc/latest-3.0.x/org/apache/cxf/
>>> jaxrs/ext/MessageContextImpl.html
>>> .
>>> However i don't see a default constructor for it (it requires a Message),
>>> and such I don't understand how it gets injected in the example - am I
>>> missing out of something?
>>> I need to create a utility which get's access to the CXF internal
>>> contexts,
>>> to get access to ResourceInfo, http headers and so on.
>>>
>>>   Starting from 3.0.0 it needs a @Context annotation. Supporting @Resource
>> annotations is limited to 2.7.x only. If it is a singleton then a thread
>> safe proxy is injected at startup and then MessageContextImpl instances are
>> inserted into it at runtime
>>
>> Thanks, Sergey
>>
>>>
>>>
>>>
>>>
>>
>
>


Re: Getting hold of JAX-RS MessageContext

Posted by David Karlsen <da...@gmail.com>.
Great - that worked just fine!
Maybe the wiki should be updated?


2014-07-01 16:27 GMT+02:00 Sergey Beryozkin <sb...@gmail.com>:

> Hi
>
> On 01/07/14 14:35, David Karlsen wrote:
>
>> Looking at
>> http://cxf.apache.org/docs/jax-rs-and-jax-ws.html "Dealing with
>> context", a
>> MessageContext is @Resource injected into the example.
>> I guess this is a
>> http://cxf.apache.org/javadoc/latest-3.0.x/org/apache/cxf/
>> jaxrs/ext/MessageContext.html
>> with it's imp:
>> http://cxf.apache.org/javadoc/latest-3.0.x/org/apache/cxf/
>> jaxrs/ext/MessageContextImpl.html
>> .
>> However i don't see a default constructor for it (it requires a Message),
>> and such I don't understand how it gets injected in the example - am I
>> missing out of something?
>> I need to create a utility which get's access to the CXF internal
>> contexts,
>> to get access to ResourceInfo, http headers and so on.
>>
>>  Starting from 3.0.0 it needs a @Context annotation. Supporting @Resource
> annotations is limited to 2.7.x only. If it is a singleton then a thread
> safe proxy is injected at startup and then MessageContextImpl instances are
> inserted into it at runtime
>
> Thanks, Sergey
>
>>
>>
>>
>>
>


-- 
--
David J. M. Karlsen - http://www.linkedin.com/in/davidkarlsen

Re: Getting hold of JAX-RS MessageContext

Posted by Sergey Beryozkin <sb...@gmail.com>.
Hi
On 01/07/14 14:35, David Karlsen wrote:
> Looking at
> http://cxf.apache.org/docs/jax-rs-and-jax-ws.html "Dealing with context", a
> MessageContext is @Resource injected into the example.
> I guess this is a
> http://cxf.apache.org/javadoc/latest-3.0.x/org/apache/cxf/jaxrs/ext/MessageContext.html
> with it's imp:
> http://cxf.apache.org/javadoc/latest-3.0.x/org/apache/cxf/jaxrs/ext/MessageContextImpl.html
> .
> However i don't see a default constructor for it (it requires a Message),
> and such I don't understand how it gets injected in the example - am I
> missing out of something?
> I need to create a utility which get's access to the CXF internal contexts,
> to get access to ResourceInfo, http headers and so on.
>
Starting from 3.0.0 it needs a @Context annotation. Supporting @Resource 
annotations is limited to 2.7.x only. If it is a singleton then a thread 
safe proxy is injected at startup and then MessageContextImpl instances 
are inserted into it at runtime

Thanks, Sergey
>
>
>