Return-Path: Delivered-To: apmail-incubator-cxf-dev-archive@locus.apache.org Received: (qmail 44451 invoked from network); 2 Nov 2006 12:07:10 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 2 Nov 2006 12:07:10 -0000 Received: (qmail 5489 invoked by uid 500); 2 Nov 2006 12:07:21 -0000 Delivered-To: apmail-incubator-cxf-dev-archive@incubator.apache.org Received: (qmail 5365 invoked by uid 500); 2 Nov 2006 12:07:21 -0000 Mailing-List: contact cxf-dev-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: cxf-dev@incubator.apache.org Delivered-To: mailing list cxf-dev@incubator.apache.org Received: (qmail 5339 invoked by uid 99); 2 Nov 2006 12:07:21 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 02 Nov 2006 04:07:21 -0800 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_HELO_PASS,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (herse.apache.org: domain of conrad.odea@iona.com designates 65.223.216.181 as permitted sender) Received: from [65.223.216.181] (HELO amereast-smg1.iona.com) (65.223.216.181) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 02 Nov 2006 04:07:02 -0800 Received: from emea-ems1.ionaglobal.com ([10.2.1.125]) by amereast-smg1.iona.com (Switch-3.1.7/Switch-3.1.7) with ESMTP id kA2C3GHP021792 for ; Thu, 2 Nov 2006 07:03:32 -0500 (EST) Received: from phrenology.dublin.emea.iona.com ([10.2.3.106]) by emea-ems1.ionaglobal.com with Microsoft SMTPSVC(5.0.2195.6713); Thu, 2 Nov 2006 12:03:26 +0000 Subject: Re: setting HTTP response headers From: "Conrad O'Dea" To: cxf-dev@incubator.apache.org In-Reply-To: <1162463461.2719.18.camel@localhost.localdomain> References: <73BEE28F-4178-4E1F-B97E-467358E6B787@iona.com> <45496058.7090509@iona.com> <1162453684.2719.1.camel@localhost.localdomain> <4549A974.6020809@iona.com> <1162457602.2719.4.camel@localhost.localdomain> <4549BD3B.4090304@iona.com> <1162463461.2719.18.camel@localhost.localdomain> Content-Type: multipart/mixed; boundary="=-99pE/3qVFhR/YJMatIE4" Date: Thu, 02 Nov 2006 12:04:37 +0000 Message-Id: <1162469078.2719.27.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 X-OriginalArrivalTime: 02 Nov 2006 12:03:26.0233 (UTC) FILETIME=[E7088890:01C6FE76] X-Virus-Checked: Checked by ClamAV on apache.org --=-99pE/3qVFhR/YJMatIE4 Content-Type: text/plain Content-Transfer-Encoding: 7bit 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. --=-99pE/3qVFhR/YJMatIE4 Content-Disposition: attachment; filename=HeaderTest.java Content-Type: text/x-java; name=HeaderTest.java; charset=utf-8 Content-Transfer-Encoding: 7bit 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 { public static final String TEST_HEADER_NAME = "Test"; @Resource WebServiceContext wsCtx; @SuppressWarnings("unchecked") public Source invoke(Source arg0) { MessageContext ctx = wsCtx.getMessageContext(); List hdr = new ArrayList(); hdr.add("test-value"); Map> hdrs = (Map>)ctx.get(MessageContext.HTTP_RESPONSE_HEADERS); if (hdrs != null) { hdrs.put(TEST_HEADER_NAME, hdr); } return new StreamSource(new StringReader("")); } 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> hdrs = conn.getHeaderFields(); for (String hdrName : hdrs.keySet()) { List 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); } } } --=-99pE/3qVFhR/YJMatIE4--