cxf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Freeman Fang <freeman.f...@iona.com>
Subject Re: setting HTTP response headers
Date Fri, 03 Nov 2006 02:52:18 GMT
Hi Conrad,

Thanks very much

That's very helpful

Freeman


Conrad O'Dea wrote:

>On Thu, 2006-11-02 at 10:31 +0000, Conrad O'Dea wrote:
>  
>
>>On Thu, 2006-11-02 at 17:41 +0800, Freeman Fang wrote:
>>    
>>
>>>If you can provide your test case, that would be great for us to write 
>>>the test.
>>>      
>>>
>>I'll put this together now...
>>
>>    
>>
>
>Here's a really simple provider that attempts to set a test header.  The
>main line GETs the message from the provider and checks if the header is
>set.
>  
>
>------------------------------------------------------------------------
>
>package test;
>
>import java.io.StringReader;
>import java.net.HttpURLConnection;
>import java.net.URL;
>import java.util.ArrayList;
>import java.util.List;
>import java.util.Map;
>
>import javax.annotation.Resource;
>import javax.xml.transform.Source;
>import javax.xml.transform.stream.StreamSource;
>import javax.xml.ws.BindingType;
>import javax.xml.ws.Endpoint;
>import javax.xml.ws.Provider;
>import javax.xml.ws.Service;
>import javax.xml.ws.ServiceMode;
>import javax.xml.ws.WebServiceContext;
>import javax.xml.ws.WebServiceProvider;
>import javax.xml.ws.handler.MessageContext;
>
>@WebServiceProvider()
>@ServiceMode(value = Service.Mode.PAYLOAD)
>//@BindingType(value = "http://cxf.apache.org/bindings/xformat")
>@BindingType(value = "http://celtix.objectweb.org/bindings/xmlformat")
>public class HeaderTest implements Provider<Source> {
>    
>    public static final String TEST_HEADER_NAME = "Test";
>    
>    @Resource
>    WebServiceContext wsCtx; 
>    
>    @SuppressWarnings("unchecked")
>    public Source invoke(Source arg0) {
>        MessageContext ctx = wsCtx.getMessageContext();
>
>        List<String> hdr = new ArrayList<String>();
>        hdr.add("test-value");
>        Map<String, List<String>> hdrs = (Map<String, List<String>>)ctx.get(MessageContext.HTTP_RESPONSE_HEADERS);
>            
>        if (hdrs != null) {
>            hdrs.put(TEST_HEADER_NAME, hdr);
>        } 
>        return new StreamSource(new StringReader("<foo/>"));
>    }
>
>    public static void main(String[] args) throws Exception {
>        try { 
>            URL url = new URL("http://localhost:9999");
>            System.out.println("publishing endpoint");
>            Endpoint.publish(url.toString(), new HeaderTest());
>            System.out.println("server ready");
>            HttpURLConnection conn = (HttpURLConnection)url.openConnection();
>
>            conn.connect();
>            boolean ok = false;
>            Map<String, List<String>> hdrs = conn.getHeaderFields();
>            for (String hdrName : hdrs.keySet()) {
>                List<String> value = hdrs.get(hdrName);
>                System.out.println(hdrName + ": " + value);
>                if (TEST_HEADER_NAME.equals(hdrName)) {
>                    ok = true;
>                }
>            }
>            System.out.println("Test " + (ok ? "PASSED" : "FAILED"));
>        } finally {
>            System.exit(0);
>        }
>    }
>}
>  
>


-- 
Freeman Fang
Software Engineer

IONA Asia Pacific Software Development Center
No.2 Floor A Unit Information Center
Zhongguancun Software Park Haidian District,
Beijing, P.R.China

Tel.: +86-10-82825151 -  ex. 551
Fax: +86-10-8282-5210
freeman.fang@iona.com
-------------------------------------------------
Making Software Work Together TM




Mime
View raw message