You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by ke...@apache.org on 2007/06/01 13:36:59 UTC

svn commit: r543462 - /webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/builder/BuilderUtil.java

Author: keithc
Date: Fri Jun  1 04:36:58 2007
New Revision: 543462

URL: http://svn.apache.org/viewvc?view=rev&rev=543462
Log:
Fix for Axis2-2747. REST fails when input is anyType

Modified:
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/builder/BuilderUtil.java

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/builder/BuilderUtil.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/builder/BuilderUtil.java?view=diff&rev=543462&r1=543461&r2=543462
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/builder/BuilderUtil.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/builder/BuilderUtil.java Fri Jun  1 04:36:58 2007
@@ -84,27 +84,13 @@
             xmlSchemaElement = axisMessage.getSchemaElement();
 
         if (xmlSchemaElement == null) {
+            OMElement bodyFirstChild =
+                            soapFactory.createOMElement(messageContext.getAxisOperation().getName(), body);
+
             // if there is no schema its piece of cake !! add these to the soap body in any order you like.
             // Note : if there are parameters in the path of the URL, there is no way this can add them
             // to the message.
-            OMElement bodyFirstChild =
-                    soapFactory.createOMElement(messageContext.getAxisOperation().getName(), body);
-
-            // first add the parameters in the URL
-            if (requestParameterMap != null) {
-                Iterator requestParamMapIter = requestParameterMap.keySet().iterator();
-                while (requestParamMapIter.hasNext()) {
-                    String key = (String) requestParamMapIter.next();
-                    String value = (String) requestParameterMap.get(key);
-                    if (value != null) {
-                        soapFactory.createOMElement(key, null, bodyFirstChild).setText(value);
-                         if (value != null) {
-                               soapFactory.createOMElement(key, null, bodyFirstChild).setText(value);
-                         }
-                    }
-
-                }
-            }
+            createSOAPMessageWithoutSchema(soapFactory, messageContext, bodyFirstChild, requestParameterMap);
         } else {
 
             // first get the target namespace from the schema and the wrapping element.
@@ -134,6 +120,10 @@
                     while (iterator.hasNext()) {
                         XmlSchemaElement innerElement = (XmlSchemaElement) iterator.next();
                         QName qName = innerElement.getQName();
+                        if (qName ==null && innerElement.getSchemaTypeName().equals(org.apache.ws.commons.schema.constants.Constants.XSD_ANYTYPE)) {
+                            createSOAPMessageWithoutSchema(soapFactory, messageContext, bodyFirstChild, requestParameterMap);
+                            break;
+                        }
                         long minOccurs = innerElement.getMinOccurs();
                         boolean nillable = innerElement.isNillable();
                         String name =
@@ -173,6 +163,24 @@
         }
     }
         return soapEnvelope;
+    }
+
+    private static void createSOAPMessageWithoutSchema(SOAPFactory soapFactory,
+                                                       MessageContext messageContext, OMElement bodyFirstChild,
+                                                       MultipleEntryHashMap requestParameterMap) {
+
+        // first add the parameters in the URL
+        if (requestParameterMap != null) {
+            Iterator requestParamMapIter = requestParameterMap.keySet().iterator();
+            while (requestParamMapIter.hasNext()) {
+                String key = (String) requestParamMapIter.next();
+                String value = (String) requestParameterMap.get(key);
+                if (value != null) {
+                    soapFactory.createOMElement(key, null, bodyFirstChild).setText(value);
+                }
+
+            }
+        }
     }
 
     public static StAXBuilder getPOXBuilder(InputStream inStream, String charSetEnc)



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org