You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by andre <an...@softplan.com.br> on 2008/05/12 14:52:00 UTC

Null MessageContext without custom invoker

Hi,

I'm using cxf's simple server frontend and I need the message context 
within the endpoint. WebServiceContext is injected, but invoking 
"getMessageContext()" from it returns null. There's a similar post 
addressing this issue, but in that case it seems it was a problem with 
the user's custom invoker. In my case, there's no custom invoker and I'm 
using Windows Vista. Is there another approach to obtain the message 
context? Can be an operating system related issue?

Sample code:

@WebService
public class FooImpl implements Foo {
    @Resource
    private WebServiceContext webContext;

    public void fooIt() {
        MessageContext messageContext = 
this.webContext.getMessageContext(); // messageContext returns null
        // ...do something with messageContext
    }
}

Thanks in advance,
Andre



Re: Null MessageContext without custom invoker

Posted by Daniel Kulp <dk...@apache.org>.
WebServiceContext is a JAX-WS specific thing and thus only works with  
the JAX-WS frontend, not the simple frontend.   You MIGHT be able to  
get it to work with the simple frontend if you use the JAX-WS invoker,  
but I'm not really sure if that works at all.   Haven't tried it.

Couple options:
1) Add an "Exchange exc" parameter as the last parameter to the  
method.   The simple frontend will see that and pass the full exchange  
in.
2) Create an Interceptor that would store the exchange or message in a  
public ThreadLocal someplace that your impl could get.


Dan




On May 12, 2008, at 8:52 AM, andre wrote:

> Hi,
>
> I'm using cxf's simple server frontend and I need the message  
> context within the endpoint. WebServiceContext is injected, but  
> invoking "getMessageContext()" from it returns null. There's a  
> similar post addressing this issue, but in that case it seems it was  
> a problem with the user's custom invoker. In my case, there's no  
> custom invoker and I'm using Windows Vista. Is there another  
> approach to obtain the message context? Can be an operating system  
> related issue?
>
> Sample code:
>
> @WebService
> public class FooImpl implements Foo {
>   @Resource
>   private WebServiceContext webContext;
>
>   public void fooIt() {
>       MessageContext messageContext =  
> this.webContext.getMessageContext(); // messageContext returns null
>       // ...do something with messageContext
>   }
> }
>
> Thanks in advance,
> Andre
>
>

---
Daniel Kulp
dkulp@apache.org
http://www.dankulp.com/blog