[ 
http://issues.apache.org/jira/browse/CXF-197?page=comments#action_12446497 ] 
            
Freeman Fang commented on CXF-197:
----------------------------------

Hi Conrad,

I had done some work of the context mapping in CXF,  I can give you some
explanations.

First, CXF has a jax-ws front end to wrap all the things about the
jax-ws, so I implemented an mapper which get the connection between
jax-ws context and rt-core message context.
Current CXF jax-ws front end mapper just implement a limited mapping of
BindingProvider and MessageContext's defined properties to rt-core, that
is why you can't use
javax.xml.ws.handler.MessageContext.HTTP_REQUEST_HEADERS to get the
request headers.

Second, I went though the code and found the http header which you want
to pass to the response wouldn't take any effect because you just set on
the context ( which we get from  inMessage's context)and it would not
effect to outMessage's context in current code.

So I will fill an JIRA and look into it today :)


>  javax.xml.ws.handler.MessageContext.HTTP_REQUEST_HEADERS and 
> HTTP_RESPONSE_HEADERS can't work
> ----------------------------------------------------------------------------------------------
>
>                 Key: CXF-197
>                 URL: http://issues.apache.org/jira/browse/CXF-197
>             Project: CXF
>          Issue Type: Bug
>            Reporter: willem Jiang
>         Assigned To: willem Jiang
>             Fix For: 2.0-M1
>
>
> I'm porting a RESTy service from Celtix 1.something to CXF and have  noticed 
> some differences in the way the HTTP protocol headers are  handled.
> For example, in a service implemented using a Provider, I've tried  getting 
> the headers from the MessageContext like this:
>     ctx.get(javax.xml.ws.handler.MessageContext.HTTP_REQUEST_HEADERS);
> This returns null though.  Calling:
>     Map<String, List<String>>hdrs = ctx.get 
> (org.apache.cxf.message.Message.PROTOCOL_HEADERS);
> works though and I can get the headers ok.
> I also need to set the response headers and should be able to set a  header 
> like this:
>       Map<String, List<String>>hdrs = ctx.get 
> (javax.xml.ws.handler.MessageContext.HTTP_RESPONSE_HEADERS);
>       hdrs.put(headerName, headerValue);
> and have it added to the outgoing response.  However, as above using  the 
> MessageContext property does not return anything.  I've tried  using the 
> org.apache.cxf.message.Message property like this
>       Map<String, List<String>>hdrs = ctx.get 
> (org.apache.cxf.message.Message.PROTOCOL_HEADERS);
>       hdrs.put(headerName, headerValue);
> but there's no sign that the header has been correctly added. 

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to