You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by jl...@apache.org on 2006/11/05 16:51:23 UTC

svn commit: r471449 - in /incubator/cxf/trunk/rt/frontend/jaxws/src: main/java/org/apache/cxf/jaxws/handler/soap/ test/java/org/apache/cxf/jaxws/handler/soap/ test/java/org/apache/cxf/jaxws/handler/soap/resources/

Author: jliu
Date: Sun Nov  5 07:51:22 2006
New Revision: 471449

URL: http://svn.apache.org/viewvc?view=rev&rev=471449
Log:
* Read and modify SOAPHeader both inbound and outbound.

Added:
    incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/handler/soap/resources/greetMeRpcLitRespWithHeader.xml   (with props)
Modified:
    incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/soap/SOAPHandlerInterceptor.java
    incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/handler/soap/SOAPHandlerInterceptorTest.java

Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/soap/SOAPHandlerInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/soap/SOAPHandlerInterceptor.java?view=diff&rev=471449&r1=471448&r2=471449
==============================================================================
--- incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/soap/SOAPHandlerInterceptor.java (original)
+++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/soap/SOAPHandlerInterceptor.java Sun Nov  5 07:51:22 2006
@@ -39,6 +39,8 @@
 import javax.xml.ws.handler.MessageContext;
 import javax.xml.ws.handler.soap.SOAPHandler;
 
+import org.w3c.dom.Element;
+
 import org.apache.cxf.binding.soap.SoapFault;
 import org.apache.cxf.binding.soap.SoapMessage;
 import org.apache.cxf.binding.soap.interceptor.SoapInterceptor;
@@ -156,6 +158,13 @@
                 }
                 reader.next();
                 message.setContent(XMLStreamReader.class, reader);
+                
+                //replace header element if necessary
+                if (message.hasHeaders(Element.class)) {
+                    Element headerElements = message.getHeaders(Element.class);
+                    headerElements = soapMessage.getSOAPHeader();    
+                    message.setHeaders(Element.class, headerElements);
+                }
             } catch (IOException ioe) {
                 throw new SoapFault(new org.apache.cxf.common.i18n.Message(
                         "SOAPHANDLERINTERCEPTOR_EXCEPTION", BUNDLE), ioe,

Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/handler/soap/SOAPHandlerInterceptorTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/handler/soap/SOAPHandlerInterceptorTest.java?view=diff&rev=471449&r1=471448&r2=471449
==============================================================================
--- incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/handler/soap/SOAPHandlerInterceptorTest.java (original)
+++ incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/handler/soap/SOAPHandlerInterceptorTest.java Sun Nov  5 07:51:22 2006
@@ -22,7 +22,6 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
-// import java.io.PrintStream;
 import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.Iterator;
@@ -108,14 +107,10 @@
         IMocksControl control = createNiceControl();
         Binding binding = control.createMock(Binding.class);
         Exchange exchange = control.createMock(Exchange.class);
-        SoapMessage message = new SoapMessage(new MessageImpl());
-        message.setExchange(exchange);
-
-        XMLStreamReader reader = preparemXMLStreamReader("resources/greetMeRpcLitReq.xml");
-        message.setContent(XMLStreamReader.class, reader);
-
         expect(exchange.get(HandlerChainInvoker.class)).andReturn(invoker).anyTimes();
-        // This is to set direction to inbound
+        SoapMessage message = new SoapMessage(new MessageImpl());
+        message.setExchange(exchange);        
+        // This is to set direction to outbound
         expect(exchange.getOutMessage()).andReturn(message).anyTimes();
         CachedStream originalEmptyOs = new CachedStream();
         message.setContent(OutputStream.class, originalEmptyOs);
@@ -153,7 +148,7 @@
     // SAAJ tree is created on if SOAPMessageContext.getMessage() is
     // called. Any changes to SOAPMessage should be streamed back to
     // outputStream
-    public void xtestSOAPBodyChangedOutBound() throws Exception {
+    public void testChangeSOAPBodyOutBound() throws Exception {
         List<Handler> list = new ArrayList<Handler>();
         list.add(new SOAPHandler<SOAPMessageContext>() {
             public boolean handleMessage(SOAPMessageContext smc) {
@@ -185,14 +180,10 @@
         IMocksControl control = createNiceControl();
         Binding binding = control.createMock(Binding.class);
         Exchange exchange = control.createMock(Exchange.class);
+        expect(exchange.get(HandlerChainInvoker.class)).andReturn(invoker).anyTimes();
         SoapMessage message = new SoapMessage(new MessageImpl());
         message.setExchange(exchange);
-
-        XMLStreamReader reader = preparemXMLStreamReader("resources/greetMeRpcLitReq.xml");
-        message.setContent(XMLStreamReader.class, reader);
-
-        expect(exchange.get(HandlerChainInvoker.class)).andReturn(invoker).anyTimes();
-        // This is to set direction to inbound
+        // This is to set direction to outbound
         expect(exchange.getOutMessage()).andReturn(message).anyTimes();
         CachedStream originalEmptyOs = new CachedStream();
         message.setContent(OutputStream.class, originalEmptyOs);
@@ -238,23 +229,26 @@
         NodeList elem3NodeList = outElement
             .getElementsByTagNameNS("http://apache.org/hello_world_rpclit/types", "elem3");
         Node elem3Element = elem3NodeList.item(0);
-        assertNotNull("100", elem3Element.getTextContent());
+        assertEquals("100", elem3Element.getTextContent());
     }
 
-    public void xtestGetSOAPHeaderInBound() throws Exception {
+    public void testChangeSOAPHeaderInBound() throws Exception {
         List<Handler> list = new ArrayList<Handler>();
         list.add(new SOAPHandler<SOAPMessageContext>() {
             public boolean handleMessage(SOAPMessageContext smc) {
                 try {
-                    // change mustUnderstand to false
-                    SOAPMessage message = smc.getMessage();
-                    SOAPHeader soapHeader = message.getSOAPHeader();
-                    Iterator it = soapHeader.getChildElements();
-                    SOAPHeaderElement headerElementNew = (SOAPHeaderElement)it.next();
-
-                    SoapVersion soapVersion = Soap11.getInstance();
-                    headerElementNew.setAttributeNS(soapVersion.getNamespace(), "SOAP-ENV:mustUnderstand",
-                                                    "false");
+                    Boolean outboundProperty = (Boolean)smc.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY);
+                    if (!outboundProperty.booleanValue()) {
+                        // change mustUnderstand to false
+                        SOAPMessage message = smc.getMessage();
+                        SOAPHeader soapHeader = message.getSOAPHeader();
+                        Iterator it = soapHeader.getChildElements();
+                        SOAPHeaderElement headerElementNew = (SOAPHeaderElement)it.next();
+
+                        SoapVersion soapVersion = Soap11.getInstance();
+                        headerElementNew.setAttributeNS(soapVersion.getNamespace(),
+                                                        "SOAP-ENV:mustUnderstand", "false");
+                    }
                 } catch (Exception e) {
                     throw new Fault(e);
                 }
@@ -280,17 +274,14 @@
         expect(exchange.get(HandlerChainInvoker.class)).andReturn(invoker).anyTimes();
         // This is to set direction to inbound
         expect(exchange.getOutMessage()).andReturn(null);
-
         SoapMessage message = new SoapMessage(new MessageImpl());
         message.setExchange(exchange);
-
         XMLStreamReader reader = preparemXMLStreamReader("resources/greetMeRpcLitReq.xml");
         message.setContent(XMLStreamReader.class, reader);
         Element headerElement = preparemSOAPHeader();
         message.setHeaders(Element.class, headerElement);
         message.put(Element.class, headerElement);
 
-        // message.setContent(Element.class, preparemSOAPHeader());
         control.replay();
 
         SOAPHandlerInterceptor li = new SOAPHandlerInterceptor(binding);
@@ -299,20 +290,108 @@
 
         // Verify SOAPMessage header
         SOAPMessage soapMessageNew = message.getContent(SOAPMessage.class);
-
         SOAPHeader soapHeader = soapMessageNew.getSOAPHeader();
         Iterator itNew = soapHeader.getChildElements();
         SOAPHeaderElement headerElementNew = (SOAPHeaderElement)itNew.next();
         SoapVersion soapVersion = Soap11.getInstance();
         assertEquals("false", headerElementNew.getAttributeNS(soapVersion.getNamespace(), "mustUnderstand"));
 
-        // Verify the XMLStreamReader
+        // Verify XMLStreamReader
         XMLStreamReader xmlReader = message.getContent(XMLStreamReader.class);
         QName qn = xmlReader.getName();
         assertEquals("sendReceiveData", qn.getLocalPart());
+        
+        // Verify Header Element
+        Element element = message.getHeaders(Element.class);      
+        NodeList headerNodeList = element.getElementsByTagNameNS(
+            "http://apache.org/hello_world_rpclit/types", "header1");
+        Element headerElementNew1 = (Element)headerNodeList.item(0);
+        assertEquals("false", headerElementNew1.getAttributeNS(soapVersion.getNamespace(), "mustUnderstand"));
+    }
+
+    public void testChangeSOAPHeaderOutBound() throws Exception {
+        List<Handler> list = new ArrayList<Handler>();
+        list.add(new SOAPHandler<SOAPMessageContext>() {
+            public boolean handleMessage(SOAPMessageContext smc) {
+                try {
+                    Boolean outboundProperty = (Boolean)smc.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY);
+                    if (outboundProperty.booleanValue()) {
+                        // change mustUnderstand to false
+                        SOAPMessage message = smc.getMessage();
+                         
+                        SOAPHeader soapHeader = message.getSOAPHeader();
+                        Iterator it = soapHeader.getChildElements(new QName(
+                            "http://apache.org/hello_world_rpclit/types", "header1"));
+                        SOAPHeaderElement headerElementNew = (SOAPHeaderElement)it.next();
+
+                        SoapVersion soapVersion = Soap11.getInstance();
+                        headerElementNew.setAttributeNS(soapVersion.getNamespace(),
+                                                        "SOAP-ENV:mustUnderstand", "false");
+                    }
+                } catch (Exception e) {
+                    throw new Fault(e);
+                }
+                return true;
+            }
+
+            public boolean handleFault(SOAPMessageContext smc) {
+                return true;
+            }
+
+            public Set<QName> getHeaders() {
+                return null;
+            }
+
+            public void close(MessageContext messageContext) {
+            }
+        });
+        HandlerChainInvoker invoker = new HandlerChainInvoker(list);
+
+        IMocksControl control = createNiceControl();
+        Binding binding = control.createMock(Binding.class);
+        Exchange exchange = control.createMock(Exchange.class);
+        expect(exchange.get(HandlerChainInvoker.class)).andReturn(invoker).anyTimes();
+        SoapMessage message = new SoapMessage(new MessageImpl());
+        message.setExchange(exchange);
+        // This is to set direction to outbound
+        expect(exchange.getOutMessage()).andReturn(message).anyTimes();
+        CachedStream originalEmptyOs = new CachedStream();
+        message.setContent(OutputStream.class, originalEmptyOs);
+
+        InterceptorChain chain = new PhaseInterceptorChain((new PhaseManagerImpl()).getOutPhases());
+        // This is to simulate interceptors followed by SOAPHandlerInterceptor
+        // write outputStream
+        chain.add(new AbstractProtocolHandlerInterceptor<SoapMessage>(binding) {
+            public void handleMessage(SoapMessage message) throws Fault {
+                try {
+                    CachedStream os = prepareOutputStreamFromResource(
+                        "resources/greetMeRpcLitRespWithHeader.xml");
+                    message.setContent(OutputStream.class, os);
+                } catch (Exception e) {
+                    // do nothing
+                }
+            }
+
+        });
+        message.setInterceptorChain(chain);
+        control.replay();
+
+        SOAPHandlerInterceptor li = new SOAPHandlerInterceptor(binding);
+        li.handleMessage(message);
+        control.verify();
+
+        // Verify SOAPMessage header
+        SOAPMessage soapMessageNew = message.getContent(SOAPMessage.class);
+
+        SOAPHeader soapHeader = soapMessageNew.getSOAPHeader();
+        Iterator itNew = soapHeader.getChildElements(new QName("http://apache.org/hello_world_rpclit/types",
+            "header1"));
+        SOAPHeaderElement headerElementNew = (SOAPHeaderElement)itNew.next();
+        SoapVersion soapVersion = Soap11.getInstance();
+        assertEquals("false", headerElementNew.getAttributeNS(soapVersion.getNamespace(), "mustUnderstand"));
     }
 
-    public void xtestGetSOAPMessageInBound() throws Exception {
+    public void testGetSOAPMessageInBound() throws Exception {
         List<Handler> list = new ArrayList<Handler>();
         list.add(new SOAPHandler<SOAPMessageContext>() {
             public boolean handleMessage(SOAPMessageContext smc) {
@@ -368,7 +447,7 @@
         assertEquals("sendReceiveData", qn.getLocalPart());
     }
 
-    public void xtestgetUnderstoodHeadersReturnsNull() {
+    public void testgetUnderstoodHeadersReturnsNull() {
         List<Handler> list = new ArrayList<Handler>();
         list.add(new SOAPHandler<SOAPMessageContext>() {
             public boolean handleMessage(SOAPMessageContext smc) {

Added: incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/handler/soap/resources/greetMeRpcLitRespWithHeader.xml
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/handler/soap/resources/greetMeRpcLitRespWithHeader.xml?view=auto&rev=471449
==============================================================================
--- incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/handler/soap/resources/greetMeRpcLitRespWithHeader.xml (added)
+++ incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/handler/soap/resources/greetMeRpcLitRespWithHeader.xml Sun Nov  5 07:51:22 2006
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements. See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership. The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License. You may obtain a copy of the License at
+ 
+  http://www.apache.org/licenses/LICENSE-2.0
+ 
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied. See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" 
+		   xmlns:xs="http://www.w3.org/2001/XMLSchema" 
+		   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+    <SOAP-ENV:Header>
+	<ns2:header1 xmlns:ns2="http://apache.org/hello_world_rpclit/types" SOAP-ENV:mustUnderstand="true">
+	</ns2:header1>
+    </SOAP-ENV:Header>
+    <SOAP-ENV:Body>
+	<ns1:sendReceiveDataResponse xmlns:ns1="http://apache.org/hello_world_rpclit">
+	    <ns5:out xmlns:ns5="http://apache.org/hello_world_rpclit/types">
+		<ns5:elem1>return is element 2</ns5:elem1>
+		<ns5:elem2>return is element 1</ns5:elem2>
+		<ns5:elem3>100</ns5:elem3>
+	    </ns5:out>
+	</ns1:sendReceiveDataResponse>
+    </SOAP-ENV:Body>
+</SOAP-ENV:Envelope>
+

Propchange: incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/handler/soap/resources/greetMeRpcLitRespWithHeader.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/handler/soap/resources/greetMeRpcLitRespWithHeader.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/handler/soap/resources/greetMeRpcLitRespWithHeader.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml



Re: svn commit: r471449 - in /incubator/cxf/trunk/rt/frontend/jaxws/src: main/java/org/apache/cxf/jaxws/handler/soap/ test/java/org/apache/cxf/jaxws/handler/soap/ test/java/org/apache/cxf/jaxws/handler/soap/resources/

Posted by Daniel Kulp <da...@iona.com>.

Jervis,

These tests don't pass on my machine.  Linux, JDk 1.5.0_08.

Can you look into it?

Thanks!
Dan



ERROR:  'NAMESPACE_ERR: An attempt is made to create or change an object 
in a way which is incorrect with regard to namespaces.'
ERROR:  'NAMESPACE_ERR: An attempt is made to create or change an object 
in a way which is incorrect with regard to namespaces.'
[surefire] Running 
org.apache.cxf.jaxws.handler.soap.SOAPHandlerInterceptorTest
[surefire] Tests run: 6, Failures: 0, Errors: 2, Time elapsed: 0.525 sec
[surefire]
[surefire] 
testChangeSOAPHeaderInBound(org.apache.cxf.jaxws.handler.soap.SOAPHandlerInterceptorTest)  
Time elapsed: 0.192 sec  <<< ERROR!
org.apache.cxf.binding.soap.SoapFault: SOAPHandlerInterceptor exception
        at 
org.apache.cxf.jaxws.handler.soap.SOAPHandlerInterceptor.handleMessage(SOAPHandlerInterceptor.java:177)
        at 
org.apache.cxf.jaxws.handler.soap.SOAPHandlerInterceptorTest.testChangeSOAPHeaderInBound(SOAPHandlerInterceptorTest.java:288)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at junit.framework.TestCase.runTest(TestCase.java:154)
        at junit.framework.TestCase.runBare(TestCase.java:127)
        at junit.framework.TestResult$1.protect(TestResult.java:106)
        at junit.framework.TestResult.runProtected(TestResult.java:124)
        at junit.framework.TestResult.run(TestResult.java:109)
        at junit.framework.TestCase.run(TestCase.java:118)
        at junit.framework.TestSuite.runTest(TestSuite.java:208)
        at junit.framework.TestSuite.run(TestSuite.java:203)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at 
org.apache.maven.surefire.battery.JUnitBattery.executeJUnit(JUnitBattery.java:242)
        at 
org.apache.maven.surefire.battery.JUnitBattery.execute(JUnitBattery.java:216)
        at 
org.apache.maven.surefire.Surefire.executeBattery(Surefire.java:215)
        at org.apache.maven.surefire.Surefire.run(Surefire.java:163)
        at org.apache.maven.surefire.Surefire.run(Surefire.java:87)
        at org.apache.maven.surefire.Surefire.run(Surefire.java:63)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at 
org.apache.maven.surefire.SurefireBooter.main(SurefireBooter.java:785)
Caused by: com.ctc.wstx.exc.WstxEOFException: Unexpected EOF in prolog
 at [row,col {unknown-source}]: [1,38]
        at 
com.ctc.wstx.sr.StreamScanner.throwUnexpectedEOF(StreamScanner.java:628)
        at 
com.ctc.wstx.sr.BasicStreamReader.handleEOF(BasicStreamReader.java:2021)
        at 
com.ctc.wstx.sr.BasicStreamReader.nextFromProlog(BasicStreamReader.java:1927)
        at 
com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1054)
        at 
com.ctc.wstx.sr.BasicStreamReader.nextTag(BasicStreamReader.java:1080)
        at 
org.apache.cxf.jaxws.handler.soap.SOAPHandlerInterceptor.handleMessage(SOAPHandlerInterceptor.java:156)
        ... 28 more

[surefire] 
testGetSOAPMessageInBound(org.apache.cxf.jaxws.handler.soap.SOAPHandlerInterceptorTest)  
Time elapsed: 0.003 sec  <<< ERROR!
org.apache.cxf.binding.soap.SoapFault: SOAPHandlerInterceptor exception
        at 
org.apache.cxf.jaxws.handler.soap.SOAPHandlerInterceptor.handleMessage(SOAPHandlerInterceptor.java:173)
        at 
org.apache.cxf.jaxws.handler.soap.SOAPHandlerInterceptorTest.testGetSOAPMessageInBound(SOAPHandlerInterceptorTest.java:434)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at junit.framework.TestCase.runTest(TestCase.java:154)
        at junit.framework.TestCase.runBare(TestCase.java:127)
        at junit.framework.TestResult$1.protect(TestResult.java:106)
        at junit.framework.TestResult.runProtected(TestResult.java:124)
        at junit.framework.TestResult.run(TestResult.java:109)
        at junit.framework.TestCase.run(TestCase.java:118)
        at junit.framework.TestSuite.runTest(TestSuite.java:208)
        at junit.framework.TestSuite.run(TestSuite.java:203)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at 
org.apache.maven.surefire.battery.JUnitBattery.executeJUnit(JUnitBattery.java:242)
        at 
org.apache.maven.surefire.battery.JUnitBattery.execute(JUnitBattery.java:216)
        at 
org.apache.maven.surefire.Surefire.executeBattery(Surefire.java:215)
        at org.apache.maven.surefire.Surefire.run(Surefire.java:163)
        at org.apache.maven.surefire.Surefire.run(Surefire.java:87)
        at org.apache.maven.surefire.Surefire.run(Surefire.java:63)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at 
org.apache.maven.surefire.SurefireBooter.main(SurefireBooter.java:785)
Caused by: com.sun.xml.messaging.saaj.SOAPExceptionImpl: Unable to create 
envelope from given source:
        at 
com.sun.xml.messaging.saaj.soap.EnvelopeFactory.createEnvelope(EnvelopeFactory.java:114)
        at 
com.sun.xml.messaging.saaj.soap.ver1_1.SOAPPart1_1Impl.createEnvelopeFromSource(SOAPPart1_1Impl.java:71)
        at 
com.sun.xml.messaging.saaj.soap.SOAPPartImpl.getEnvelope(SOAPPartImpl.java:125)
        at 
com.sun.xml.messaging.saaj.soap.MessageImpl.getSOAPBody(MessageImpl.java:1237)
        at 
org.apache.cxf.jaxws.handler.soap.SOAPHandlerInterceptor.handleMessage(SOAPHandlerInterceptor.java:147)
        ... 28 more
Caused by: javax.xml.transform.TransformerException: 
org.w3c.dom.DOMException: NAMESPACE_ERR: An attempt is made to create or 
change an object in a way which is incorrect with regard to namespaces.
        at 
com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:651)
        at 
com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:281)
        at 
com.sun.xml.messaging.saaj.util.transform.EfficientStreamingTransformer.transform(EfficientStreamingTransformer.java:390)
        at 
com.sun.xml.messaging.saaj.soap.EnvelopeFactory.createEnvelope(EnvelopeFactory.java:102)
        ... 32 more
Caused by: org.w3c.dom.DOMException: NAMESPACE_ERR: An attempt is made to 
create or change an object in a way which is incorrect with regard to 
namespaces.
        at 
com.sun.org.apache.xerces.internal.dom.CoreDocumentImpl.checkDOMNSErr(CoreDocumentImpl.java:2421)
        at 
com.sun.org.apache.xerces.internal.dom.AttrNSImpl.setName(AttrNSImpl.java:150)
        at 
com.sun.org.apache.xerces.internal.dom.AttrNSImpl.<init>(AttrNSImpl.java:111)
        at 
com.sun.org.apache.xerces.internal.dom.CoreDocumentImpl.createAttributeNS(CoreDocumentImpl.java:2012)
        at 
com.sun.xml.messaging.saaj.soap.SOAPDocumentImpl.createAttributeNS(SOAPDocumentImpl.java:161)
        at 
com.sun.org.apache.xerces.internal.dom.ElementImpl.setAttributeNS(ElementImpl.java:684)
        at 
com.sun.xml.messaging.saaj.soap.impl.ElementImpl.setAttributeNS(ElementImpl.java:1213)
        at 
com.sun.org.apache.xalan.internal.xsltc.trax.SAX2DOM.startElement(SAX2DOM.java:134)
        at 
com.sun.org.apache.xml.internal.serializer.ToXMLSAXHandler.closeStartTag(ToXMLSAXHandler.java:205)
        at 
com.sun.org.apache.xml.internal.serializer.ToSAXHandler.flushPending(ToSAXHandler.java:291)
        at 
com.sun.org.apache.xml.internal.serializer.ToXMLSAXHandler.startPrefixMapping(ToXMLSAXHandler.java:349)
        at 
com.sun.org.apache.xml.internal.serializer.ToXMLSAXHandler.startPrefixMapping(ToXMLSAXHandler.java:319)
        at 
org.xml.sax.helpers.XMLFilterImpl.startPrefixMapping(XMLFilterImpl.java:490)
        at 
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startNamespaceMapping(AbstractSAXParser.java:2063)
        at 
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:499)
        at 
com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:330)
        at 
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1693)
        at 
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:368)
        at 
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:834)
        at 
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
        at 
com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:148)
        at 
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1242)
        at org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:333)
        at 
com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transformIdentity(TransformerImpl.java:588)
        at 
com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:642)
        ... 35 more




On Sunday November 05 2006 10:51 am, jliu@apache.org wrote:
> Author: jliu
> Date: Sun Nov  5 07:51:22 2006
> New Revision: 471449
>
> URL: http://svn.apache.org/viewvc?view=rev&rev=471449
> Log:
> * Read and modify SOAPHeader both inbound and outbound.
>
> Added:
>    
> incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxw
>s/handler/soap/resources/greetMeRpcLitRespWithHeader.xml   (with props)
> Modified:
>    
> incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxw
>s/handler/soap/SOAPHandlerInterceptor.java
> incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxw
>s/handler/soap/SOAPHandlerInterceptorTest.java
>
> Modified:
> incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxw
>s/handler/soap/SOAPHandlerInterceptor.java URL:
> http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/
>main/java/org/apache/cxf/jaxws/handler/soap/SOAPHandlerInterceptor.java?
>view=diff&rev=471449&r1=471448&r2=471449
> =======================================================================
>======= ---
> incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxw
>s/handler/soap/SOAPHandlerInterceptor.java (original) +++
> incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxw
>s/handler/soap/SOAPHandlerInterceptor.java Sun Nov  5 07:51:22 2006 @@
> -39,6 +39,8 @@
>  import javax.xml.ws.handler.MessageContext;
>  import javax.xml.ws.handler.soap.SOAPHandler;
>
> +import org.w3c.dom.Element;
> +
>  import org.apache.cxf.binding.soap.SoapFault;
>  import org.apache.cxf.binding.soap.SoapMessage;
>  import org.apache.cxf.binding.soap.interceptor.SoapInterceptor;
> @@ -156,6 +158,13 @@
>                  }
>                  reader.next();
>                  message.setContent(XMLStreamReader.class, reader);
> +
> +                //replace header element if necessary
> +                if (message.hasHeaders(Element.class)) {
> +                    Element headerElements =
> message.getHeaders(Element.class); +                    headerElements
> = soapMessage.getSOAPHeader(); +                   
> message.setHeaders(Element.class, headerElements); +                }
>              } catch (IOException ioe) {
>                  throw new SoapFault(new
> org.apache.cxf.common.i18n.Message( "SOAPHANDLERINTERCEPTOR_EXCEPTION",
> BUNDLE), ioe,
>
> Modified:
> incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxw
>s/handler/soap/SOAPHandlerInterceptorTest.java URL:
> http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/
>test/java/org/apache/cxf/jaxws/handler/soap/SOAPHandlerInterceptorTest.j
>ava?view=diff&rev=471449&r1=471448&r2=471449
> =======================================================================
>======= ---
> incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxw
>s/handler/soap/SOAPHandlerInterceptorTest.java (original) +++
> incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxw
>s/handler/soap/SOAPHandlerInterceptorTest.java Sun Nov  5 07:51:22 2006
> @@ -22,7 +22,6 @@
>  import java.io.IOException;
>  import java.io.InputStream;
>  import java.io.OutputStream;
> -// import java.io.PrintStream;
>  import java.util.ArrayList;
>  import java.util.HashSet;
>  import java.util.Iterator;
> @@ -108,14 +107,10 @@
>          IMocksControl control = createNiceControl();
>          Binding binding = control.createMock(Binding.class);
>          Exchange exchange = control.createMock(Exchange.class);
> -        SoapMessage message = new SoapMessage(new MessageImpl());
> -        message.setExchange(exchange);
> -
> -        XMLStreamReader reader =
> preparemXMLStreamReader("resources/greetMeRpcLitReq.xml"); -       
> message.setContent(XMLStreamReader.class, reader);
> -
>         
> expect(exchange.get(HandlerChainInvoker.class)).andReturn(invoker).anyT
>imes(); -        // This is to set direction to inbound
> +        SoapMessage message = new SoapMessage(new MessageImpl());
> +        message.setExchange(exchange);
> +        // This is to set direction to outbound
>         
> expect(exchange.getOutMessage()).andReturn(message).anyTimes();
> CachedStream originalEmptyOs = new CachedStream();
>          message.setContent(OutputStream.class, originalEmptyOs);
> @@ -153,7 +148,7 @@
>      // SAAJ tree is created on if SOAPMessageContext.getMessage() is
>      // called. Any changes to SOAPMessage should be streamed back to
>      // outputStream
> -    public void xtestSOAPBodyChangedOutBound() throws Exception {
> +    public void testChangeSOAPBodyOutBound() throws Exception {
>          List<Handler> list = new ArrayList<Handler>();
>          list.add(new SOAPHandler<SOAPMessageContext>() {
>              public boolean handleMessage(SOAPMessageContext smc) {
> @@ -185,14 +180,10 @@
>          IMocksControl control = createNiceControl();
>          Binding binding = control.createMock(Binding.class);
>          Exchange exchange = control.createMock(Exchange.class);
> +       
> expect(exchange.get(HandlerChainInvoker.class)).andReturn(invoker).anyT
>imes(); SoapMessage message = new SoapMessage(new MessageImpl());
> message.setExchange(exchange);
> -
> -        XMLStreamReader reader =
> preparemXMLStreamReader("resources/greetMeRpcLitReq.xml"); -       
> message.setContent(XMLStreamReader.class, reader);
> -
> -       
> expect(exchange.get(HandlerChainInvoker.class)).andReturn(invoker).anyT
>imes(); -        // This is to set direction to inbound
> +        // This is to set direction to outbound
>         
> expect(exchange.getOutMessage()).andReturn(message).anyTimes();
> CachedStream originalEmptyOs = new CachedStream();
>          message.setContent(OutputStream.class, originalEmptyOs);
> @@ -238,23 +229,26 @@
>          NodeList elem3NodeList = outElement
>             
> .getElementsByTagNameNS("http://apache.org/hello_world_rpclit/types",
> "elem3"); Node elem3Element = elem3NodeList.item(0);
> -        assertNotNull("100", elem3Element.getTextContent());
> +        assertEquals("100", elem3Element.getTextContent());
>      }
>
> -    public void xtestGetSOAPHeaderInBound() throws Exception {
> +    public void testChangeSOAPHeaderInBound() throws Exception {
>          List<Handler> list = new ArrayList<Handler>();
>          list.add(new SOAPHandler<SOAPMessageContext>() {
>              public boolean handleMessage(SOAPMessageContext smc) {
>                  try {
> -                    // change mustUnderstand to false
> -                    SOAPMessage message = smc.getMessage();
> -                    SOAPHeader soapHeader = message.getSOAPHeader();
> -                    Iterator it = soapHeader.getChildElements();
> -                    SOAPHeaderElement headerElementNew =
> (SOAPHeaderElement)it.next(); -
> -                    SoapVersion soapVersion = Soap11.getInstance();
> -                   
> headerElementNew.setAttributeNS(soapVersion.getNamespace(),
> "SOAP-ENV:mustUnderstand", -                                           
>         "false"); +                    Boolean outboundProperty =
> (Boolean)smc.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY); +          
>          if (!outboundProperty.booleanValue()) {
> +                        // change mustUnderstand to false
> +                        SOAPMessage message = smc.getMessage();
> +                        SOAPHeader soapHeader =
> message.getSOAPHeader(); +                        Iterator it =
> soapHeader.getChildElements(); +                       
> SOAPHeaderElement headerElementNew = (SOAPHeaderElement)it.next(); +
> +                        SoapVersion soapVersion =
> Soap11.getInstance(); +                       
> headerElementNew.setAttributeNS(soapVersion.getNamespace(), +          
>                                              "SOAP-ENV:mustUnderstand",
> "false"); +                    }
>                  } catch (Exception e) {
>                      throw new Fault(e);
>                  }
> @@ -280,17 +274,14 @@
>         
> expect(exchange.get(HandlerChainInvoker.class)).andReturn(invoker).anyT
>imes(); // This is to set direction to inbound
>          expect(exchange.getOutMessage()).andReturn(null);
> -
>          SoapMessage message = new SoapMessage(new MessageImpl());
>          message.setExchange(exchange);
> -
>          XMLStreamReader reader =
> preparemXMLStreamReader("resources/greetMeRpcLitReq.xml");
> message.setContent(XMLStreamReader.class, reader);
>          Element headerElement = preparemSOAPHeader();
>          message.setHeaders(Element.class, headerElement);
>          message.put(Element.class, headerElement);
>
> -        // message.setContent(Element.class, preparemSOAPHeader());
>          control.replay();
>
>          SOAPHandlerInterceptor li = new
> SOAPHandlerInterceptor(binding); @@ -299,20 +290,108 @@
>
>          // Verify SOAPMessage header
>          SOAPMessage soapMessageNew =
> message.getContent(SOAPMessage.class); -
>          SOAPHeader soapHeader = soapMessageNew.getSOAPHeader();
>          Iterator itNew = soapHeader.getChildElements();
>          SOAPHeaderElement headerElementNew =
> (SOAPHeaderElement)itNew.next(); SoapVersion soapVersion =
> Soap11.getInstance();
>          assertEquals("false",
> headerElementNew.getAttributeNS(soapVersion.getNamespace(),
> "mustUnderstand"));
>
> -        // Verify the XMLStreamReader
> +        // Verify XMLStreamReader
>          XMLStreamReader xmlReader =
> message.getContent(XMLStreamReader.class); QName qn =
> xmlReader.getName();
>          assertEquals("sendReceiveData", qn.getLocalPart());
> +
> +        // Verify Header Element
> +        Element element = message.getHeaders(Element.class);
> +        NodeList headerNodeList = element.getElementsByTagNameNS(
> +            "http://apache.org/hello_world_rpclit/types", "header1");
> +        Element headerElementNew1 = (Element)headerNodeList.item(0);
> +        assertEquals("false",
> headerElementNew1.getAttributeNS(soapVersion.getNamespace(),
> "mustUnderstand")); +    }
> +
> +    public void testChangeSOAPHeaderOutBound() throws Exception {
> +        List<Handler> list = new ArrayList<Handler>();
> +        list.add(new SOAPHandler<SOAPMessageContext>() {
> +            public boolean handleMessage(SOAPMessageContext smc) {
> +                try {
> +                    Boolean outboundProperty =
> (Boolean)smc.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY); +          
>          if (outboundProperty.booleanValue()) {
> +                        // change mustUnderstand to false
> +                        SOAPMessage message = smc.getMessage();
> +
> +                        SOAPHeader soapHeader =
> message.getSOAPHeader(); +                        Iterator it =
> soapHeader.getChildElements(new QName( +                           
> "http://apache.org/hello_world_rpclit/types", "header1")); +           
>             SOAPHeaderElement headerElementNew =
> (SOAPHeaderElement)it.next(); +
> +                        SoapVersion soapVersion =
> Soap11.getInstance(); +                       
> headerElementNew.setAttributeNS(soapVersion.getNamespace(), +          
>                                              "SOAP-ENV:mustUnderstand",
> "false"); +                    }
> +                } catch (Exception e) {
> +                    throw new Fault(e);
> +                }
> +                return true;
> +            }
> +
> +            public boolean handleFault(SOAPMessageContext smc) {
> +                return true;
> +            }
> +
> +            public Set<QName> getHeaders() {
> +                return null;
> +            }
> +
> +            public void close(MessageContext messageContext) {
> +            }
> +        });
> +        HandlerChainInvoker invoker = new HandlerChainInvoker(list);
> +
> +        IMocksControl control = createNiceControl();
> +        Binding binding = control.createMock(Binding.class);
> +        Exchange exchange = control.createMock(Exchange.class);
> +       
> expect(exchange.get(HandlerChainInvoker.class)).andReturn(invoker).anyT
>imes(); +        SoapMessage message = new SoapMessage(new
> MessageImpl()); +        message.setExchange(exchange);
> +        // This is to set direction to outbound
> +       
> expect(exchange.getOutMessage()).andReturn(message).anyTimes(); +      
>  CachedStream originalEmptyOs = new CachedStream();
> +        message.setContent(OutputStream.class, originalEmptyOs);
> +
> +        InterceptorChain chain = new PhaseInterceptorChain((new
> PhaseManagerImpl()).getOutPhases()); +        // This is to simulate
> interceptors followed by SOAPHandlerInterceptor +        // write
> outputStream
> +        chain.add(new
> AbstractProtocolHandlerInterceptor<SoapMessage>(binding) { +           
> public void handleMessage(SoapMessage message) throws Fault { +        
>        try {
> +                    CachedStream os = prepareOutputStreamFromResource(
> +                        "resources/greetMeRpcLitRespWithHeader.xml");
> +                    message.setContent(OutputStream.class, os);
> +                } catch (Exception e) {
> +                    // do nothing
> +                }
> +            }
> +
> +        });
> +        message.setInterceptorChain(chain);
> +        control.replay();
> +
> +        SOAPHandlerInterceptor li = new
> SOAPHandlerInterceptor(binding); +        li.handleMessage(message);
> +        control.verify();
> +
> +        // Verify SOAPMessage header
> +        SOAPMessage soapMessageNew =
> message.getContent(SOAPMessage.class); +
> +        SOAPHeader soapHeader = soapMessageNew.getSOAPHeader();
> +        Iterator itNew = soapHeader.getChildElements(new
> QName("http://apache.org/hello_world_rpclit/types", +           
> "header1"));
> +        SOAPHeaderElement headerElementNew =
> (SOAPHeaderElement)itNew.next(); +        SoapVersion soapVersion =
> Soap11.getInstance();
> +        assertEquals("false",
> headerElementNew.getAttributeNS(soapVersion.getNamespace(),
> "mustUnderstand")); }
>
> -    public void xtestGetSOAPMessageInBound() throws Exception {
> +    public void testGetSOAPMessageInBound() throws Exception {
>          List<Handler> list = new ArrayList<Handler>();
>          list.add(new SOAPHandler<SOAPMessageContext>() {
>              public boolean handleMessage(SOAPMessageContext smc) {
> @@ -368,7 +447,7 @@
>          assertEquals("sendReceiveData", qn.getLocalPart());
>      }
>
> -    public void xtestgetUnderstoodHeadersReturnsNull() {
> +    public void testgetUnderstoodHeadersReturnsNull() {
>          List<Handler> list = new ArrayList<Handler>();
>          list.add(new SOAPHandler<SOAPMessageContext>() {
>              public boolean handleMessage(SOAPMessageContext smc) {
>
> Added:
> incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxw
>s/handler/soap/resources/greetMeRpcLitRespWithHeader.xml URL:
> http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/
>test/java/org/apache/cxf/jaxws/handler/soap/resources/greetMeRpcLitRespW
>ithHeader.xml?view=auto&rev=471449
> =======================================================================
>======= ---
> incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxw
>s/handler/soap/resources/greetMeRpcLitRespWithHeader.xml (added) +++
> incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxw
>s/handler/soap/resources/greetMeRpcLitRespWithHeader.xml Sun Nov  5
> 07:51:22 2006 @@ -0,0 +1,37 @@
> +<?xml version="1.0" encoding="utf-8" ?>
> +<!--
> +  Licensed to the Apache Software Foundation (ASF) under one
> +  or more contributor license agreements. See the NOTICE file
> +  distributed with this work for additional information
> +  regarding copyright ownership. The ASF licenses this file
> +  to you under the Apache License, Version 2.0 (the
> +  "License"); you may not use this file except in compliance
> +  with the License. You may obtain a copy of the License at
> +
> +  http://www.apache.org/licenses/LICENSE-2.0
> +
> +  Unless required by applicable law or agreed to in writing,
> +  software distributed under the License is distributed on an
> +  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> +  KIND, either express or implied. See the License for the
> +  specific language governing permissions and limitations
> +  under the License.
> +-->
> +<SOAP-ENV:Envelope
> xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" +		  
> xmlns:xs="http://www.w3.org/2001/XMLSchema"
> +		   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> +    <SOAP-ENV:Header>
> +	<ns2:header1 xmlns:ns2="http://apache.org/hello_world_rpclit/types"
> SOAP-ENV:mustUnderstand="true"> +	</ns2:header1>
> +    </SOAP-ENV:Header>
> +    <SOAP-ENV:Body>
> +	<ns1:sendReceiveDataResponse
> xmlns:ns1="http://apache.org/hello_world_rpclit"> +	    <ns5:out
> xmlns:ns5="http://apache.org/hello_world_rpclit/types">
> +		<ns5:elem1>return is element 2</ns5:elem1>
> +		<ns5:elem2>return is element 1</ns5:elem2>
> +		<ns5:elem3>100</ns5:elem3>
> +	    </ns5:out>
> +	</ns1:sendReceiveDataResponse>
> +    </SOAP-ENV:Body>
> +</SOAP-ENV:Envelope>
> +
>
> Propchange:
> incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxw
>s/handler/soap/resources/greetMeRpcLitRespWithHeader.xml
> -----------------------------------------------------------------------
>------- svn:eol-style = native
>
> Propchange:
> incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxw
>s/handler/soap/resources/greetMeRpcLitRespWithHeader.xml
> -----------------------------------------------------------------------
>------- svn:keywords = Rev Date
>
> Propchange:
> incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxw
>s/handler/soap/resources/greetMeRpcLitRespWithHeader.xml
> -----------------------------------------------------------------------
>------- svn:mime-type = text/xml

-- 
J. Daniel Kulp
Principal Engineer
IONA
P: 781-902-8727    C: 508-380-7194   F:781-902-8001
daniel.kulp@iona.com