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 he...@apache.org on 2005/02/22 13:17:55 UTC

svn commit: r154836 - in webservices/axis/trunk/java/modules: core/src/java/org/apache/axis/engine/ samples/src/java/interop/doclit/ samples/src/java/org/apache/axis/testUtils/

Author: hemapani
Date: Tue Feb 22 04:17:50 2005
New Revision: 154836

URL: http://svn.apache.org/viewcvs?view=rev&rev=154836
Log:
now the intreop test server interop with the Axis1.x

Modified:
    webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/Dispatcher.java
    webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/EngineRegistry.java
    webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/EngineRegistryImpl.java
    webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/ExecutionChain.java
    webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/Handler.java
    webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/Phase.java
    webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/Provider.java
    webservices/axis/trunk/java/modules/samples/src/java/interop/doclit/InteropProvider.java
    webservices/axis/trunk/java/modules/samples/src/java/interop/doclit/SOAPStructEncoder.java
    webservices/axis/trunk/java/modules/samples/src/java/org/apache/axis/testUtils/ArrayTypeEncoder.java
    webservices/axis/trunk/java/modules/samples/src/java/org/apache/axis/testUtils/SimpleTypeEncoder.java

Modified: webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/Dispatcher.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/Dispatcher.java?view=diff&r1=154835&r2=154836
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/Dispatcher.java (original)
+++ webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/Dispatcher.java Tue Feb 22 04:17:50 2005
@@ -15,7 +15,8 @@
  */
 package org.apache.axis.engine;
 
-import org.apache.axis.Constants;
+import javax.xml.namespace.QName;
+
 import org.apache.axis.addressing.EndpointReference;
 import org.apache.axis.context.MessageContext;
 import org.apache.axis.description.AxisOperation;
@@ -25,8 +26,6 @@
 import org.apache.axis.handlers.OpNameFinder;
 import org.apache.wsdl.WSDLService;
 
-import javax.xml.namespace.QName;
-
 /**
  * Class Dispatcher
  */
@@ -34,8 +33,7 @@
     /**
      * Field NAME
      */
-    public static final QName NAME = new QName("http://axis.ws.apache.org",
-                    "Disapatcher");
+    public static final QName NAME = new QName("http://axis.ws.apache.org", "Disapatcher");
 
     /**
      * Constructor Dispatcher
@@ -54,51 +52,49 @@
         if (msgctx.isServerSide()) {
             EndpointReference toEPR = msgctx.getTo();
             String filePart = toEPR.getAddress();
-            String soapAction =
-                    (String) msgctx.getProperty(MessageContext.SOAP_ACTION);
+            String soapAction = (String) msgctx.getProperty(MessageContext.SOAP_ACTION);
+
+            QName operationName = null;
+            QName serviceName = null;
+            
             int index = filePart.lastIndexOf('/');
             String serviceAndMethodStr = null;
             if (index > 0) {
                 serviceAndMethodStr = filePart.substring(index + 1);
             }
-            if (serviceAndMethodStr == null) {
-                serviceAndMethodStr = soapAction;
-            }
-            index = serviceAndMethodStr.lastIndexOf(
-                    Constants.METHOD_NAME_ESCAPE_CHARACTOR);
-            QName serviceName = null;
-            QName operationName = null;
-            if (index > 0) {
-                serviceName = new QName(serviceAndMethodStr.substring(0,
-                                index ));
-                operationName = new QName(serviceAndMethodStr.substring(index
-                                        + 1));
-            } else {
+
+            if (WSDLService.STYLE_DOC.equals(msgctx.getMessageStyle())) {
+                if(serviceAndMethodStr != null){
+                    serviceName = new QName(serviceAndMethodStr);
+                }
+                if(soapAction != null &&  soapAction.trim().length() > 0){
+                    operationName = new QName(soapAction);
+                }
+            }else if (WSDLService.STYLE_RPC.equals(msgctx.getMessageStyle())) {
+                if(serviceAndMethodStr == null){
+                    if(soapAction != null &&  soapAction.trim().length() > 0){
+                        serviceAndMethodStr = soapAction;
+                    }else{
+                        throw new AxisFault("Noway to find the service, both URL and soapAcition missing");
+                    }
+                }
                 serviceName = new QName(serviceAndMethodStr);
+            }else{
+                throw new AxisFault("Unknow style " + msgctx.getMessageStyle());
             }
+
             if (serviceName != null) {
-                EngineRegistry registry =
-                        msgctx.getGlobalContext().getRegistry();
+                EngineRegistry registry = msgctx.getGlobalContext().getRegistry();
                 AxisService service = registry.getService(serviceName);
                 if (service != null) {
                     msgctx.setService(service);
                     msgctx.setMessageStyle(service.getStyle());
-                    if (!WSDLService.STYLE_RPC.equals(
-                            msgctx.getMessageStyle())) {
-                        if (operationName != null) {
-                            AxisOperation op =
-                                    service.getOperation(operationName);
-                            if (op != null) {
-                                msgctx.setOperation(op);
-                            } else {
-                                throw new AxisFault("Operation not found "
-                                                + operationName);
-                            }
-                        } else {
-                            throw new AxisFault("Operation Name not specifed");
-                        }
-                    }
-
+                    if (operationName != null) {
+                        AxisOperation op = service.getOperation(operationName);
+                        if (op != null) {
+                            msgctx.setOperation(op);
+                        } 
+                    } 
                     // let add the Handlers
                     ExecutionChain chain = msgctx.getExecutionChain();
                     chain.addPhases(service.getPhases(EngineRegistry.INFLOW));
@@ -106,12 +102,10 @@
                     // add invoke Phase
                     Phase invokePhase = new Phase(Phase.SERVICE_INVOCATION);
                     invokePhase.addHandler(new OpNameFinder());
-                    invokePhase.addHandler(
-                            ReceiverLocator.locateReceiver(msgctx));
+                    invokePhase.addHandler(ReceiverLocator.locateReceiver(msgctx));
                     chain.addPhase(invokePhase);
                 } else {
-                    throw new AxisFault("Service " + serviceName
-                                    + " is not found");
+                    throw new AxisFault("Service " + serviceName + " is not found");
                 }
             } else {
                 throw new AxisFault("Both the URI and SOAP_ACTION Is Null");

Modified: webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/EngineRegistry.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/EngineRegistry.java?view=diff&r1=154835&r2=154836
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/EngineRegistry.java (original)
+++ webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/EngineRegistry.java Tue Feb 22 04:17:50 2005
@@ -15,14 +15,15 @@
  */
 package org.apache.axis.engine;
 
+import java.util.ArrayList;
+import java.util.HashMap;
+
+import javax.xml.namespace.QName;
+
 import org.apache.axis.description.AxisGlobal;
 import org.apache.axis.description.AxisModule;
 import org.apache.axis.description.AxisService;
 import org.apache.axis.description.AxisTransport;
-
-import javax.xml.namespace.QName;
-import java.util.ArrayList;
-import java.util.HashMap;
 
 /**
  * The palce where all the Global states of Axis is kept.

Modified: webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/EngineRegistryImpl.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/EngineRegistryImpl.java?view=diff&r1=154835&r2=154836
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/EngineRegistryImpl.java (original)
+++ webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/EngineRegistryImpl.java Tue Feb 22 04:17:50 2005
@@ -15,14 +15,15 @@
  */
 package org.apache.axis.engine;
 
+import java.util.ArrayList;
+import java.util.HashMap;
+
+import javax.xml.namespace.QName;
+
 import org.apache.axis.description.AxisGlobal;
 import org.apache.axis.description.AxisModule;
 import org.apache.axis.description.AxisService;
 import org.apache.axis.description.AxisTransport;
-
-import javax.xml.namespace.QName;
-import java.util.ArrayList;
-import java.util.HashMap;
 
 /**
  * Class EngineRegistryImpl

Modified: webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/ExecutionChain.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/ExecutionChain.java?view=diff&r1=154835&r2=154836
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/ExecutionChain.java (original)
+++ webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/ExecutionChain.java Tue Feb 22 04:17:50 2005
@@ -15,14 +15,15 @@
  */
 package org.apache.axis.engine;
 
-import org.apache.axis.context.MessageContext;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import javax.xml.namespace.QName;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Stack;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axis.context.MessageContext;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 
 /**
  * <p> This is the ordered Collection of Phases as specified by the Server.xml file.

Modified: webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/Handler.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/Handler.java?view=diff&r1=154835&r2=154836
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/Handler.java (original)
+++ webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/Handler.java Tue Feb 22 04:17:50 2005
@@ -15,12 +15,13 @@
  */
 package org.apache.axis.engine;
 
+import java.io.Serializable;
+
+import javax.xml.namespace.QName;
+
 import org.apache.axis.context.MessageContext;
 import org.apache.axis.description.HandlerMetadata;
 import org.apache.axis.description.Parameter;
-
-import javax.xml.namespace.QName;
-import java.io.Serializable;
 
 /**
  * Interface Handler

Modified: webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/Phase.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/Phase.java?view=diff&r1=154835&r2=154836
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/Phase.java (original)
+++ webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/Phase.java Tue Feb 22 04:17:50 2005
@@ -15,15 +15,16 @@
  */
 package org.apache.axis.engine;
 
+import java.util.ArrayList;
+import java.util.Stack;
+
+import javax.xml.namespace.QName;
+
 import org.apache.axis.context.MessageContext;
 import org.apache.axis.description.HandlerMetadata;
 import org.apache.axis.handlers.AbstractHandler;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-
-import javax.xml.namespace.QName;
-import java.util.ArrayList;
-import java.util.Stack;
 
 /**
  * <p>This is Phase, a orderd collection of Handlers.

Modified: webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/Provider.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/Provider.java?view=diff&r1=154835&r2=154836
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/Provider.java (original)
+++ webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/Provider.java Tue Feb 22 04:17:50 2005
@@ -15,9 +15,9 @@
  */
 package org.apache.axis.engine;
 
-import org.apache.axis.context.MessageContext;
-
 import java.io.Serializable;
+
+import org.apache.axis.context.MessageContext;
 
 /**
  * This Provider is the workhorse who locate the implementation of the Web Service and

Modified: webservices/axis/trunk/java/modules/samples/src/java/interop/doclit/InteropProvider.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/samples/src/java/interop/doclit/InteropProvider.java?view=diff&r1=154835&r2=154836
==============================================================================
--- webservices/axis/trunk/java/modules/samples/src/java/interop/doclit/InteropProvider.java (original)
+++ webservices/axis/trunk/java/modules/samples/src/java/interop/doclit/InteropProvider.java Tue Feb 22 04:17:50 2005
@@ -18,6 +18,7 @@
 
 import org.apache.axis.context.MessageContext;
 import org.apache.axis.description.AxisOperation;
+import org.apache.axis.description.AxisService;
 import org.apache.axis.engine.AxisFault;
 import org.apache.axis.om.OMConstants;
 import org.apache.axis.om.OMElement;
@@ -28,11 +29,12 @@
 import org.apache.axis.testUtils.Encoder;
 import org.apache.axis.testUtils.ObjectToOMBuilder;
 import org.apache.axis.testUtils.SimpleJavaProvider;
-import org.apache.axis.testUtils.SimpleTypeEncoder;
 import org.apache.axis.testUtils.SimpleTypeEncodingUtils;
 import org.apache.wsdl.WSDLService;
 
+import javax.xml.namespace.QName;
 import javax.xml.stream.XMLStreamConstants;
+import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
 import java.lang.reflect.Method;
 
@@ -43,57 +45,37 @@
  * Time: 3:10:05 PM
  */
 public class InteropProvider extends SimpleJavaProvider {
-
-    public Object[] deserializeParameters(MessageContext msgContext, Method method)
+    private int event;
+    public Object[] deserializeParameters(
+        MessageContext msgContext,
+        Method method,
+        XMLStreamReader xpp)
         throws AxisFault {
-            try {
-            if(WSDLService.STYLE_DOC.equals(msgContext.getMessageStyle())){
-                SOAPBody body = msgContext.getEnvelope().getBody();
-                XMLStreamReader xpp = body.getPullParser(true);
-                Class[] parms = method.getParameterTypes();
-                Object[] objs = new Object[parms.length];
-
-
-                    int event = xpp.next();
-                    while (XMLStreamConstants.START_ELEMENT != event
-                        && XMLStreamConstants.END_ELEMENT != event) {
-                        event = xpp.next();
-                    }
-                    
-                    event = xpp.next();
-                    while (XMLStreamConstants.START_ELEMENT != event
-                        && XMLStreamConstants.END_ELEMENT != event) {
-                        event = xpp.next();
-                    }
-                //now we are at the parameters element event
+        try {
+            Class[] parms = method.getParameterTypes();
+            Object[] objs = new Object[parms.length];
 
-                    if (XMLStreamConstants.END_ELEMENT == event) {
-                        return null;
+            if (XMLStreamConstants.END_ELEMENT == event) {
+                return null;
+            } else {
+                for (int i = 0; i < parms.length; i++) {
+                    if (int.class.equals(parms[i])) {
+                        objs[i] = new Integer(SimpleTypeEncodingUtils.deserializeInt(xpp));
+                    } else if (String.class.equals(parms[i])) {
+                        objs[i] = SimpleTypeEncodingUtils.deserializeString(xpp);
+                    } else if (String[].class.equals(parms[i])) {
+                        objs[i] = SimpleTypeEncodingUtils.deserializeStringArray(xpp);
+                    } else if (SOAPStruct.class.equals(parms[i])) {
+                        SOAPStructEncoder enc = new SOAPStructEncoder();
+                        objs[i] = enc.deSerialize(xpp);
                     } else {
-                        for (int i = 0; i < parms.length; i++) {
-                            if (int.class.equals(parms[i])) {
-                                objs[i] = new Integer(SimpleTypeEncodingUtils.deserializeInt(xpp));
-                            } else if (String.class.equals(parms[i])) {
-                                objs[i] = SimpleTypeEncodingUtils.deserializeString(xpp);
-                            } else if (String[].class.equals(parms[i])) {
-                                objs[i] = SimpleTypeEncodingUtils.deserializeStringArray(xpp);
-                            } else if (SOAPStruct.class.equals(parms[i])) {
-                                SOAPStructEncoder enc = new SOAPStructEncoder();
-                                objs[i] = enc.deSerialize(xpp);
-                            }  else {
-                                throw new UnsupportedOperationException("UnSupported type "+parms[i]);
-                            }
-                        }
-                        return objs;
-
+                        throw new UnsupportedOperationException("UnSupported type " + parms[i]);
                     }
-                
-            }else{
-                throw new AxisFault("this Service only supports doc-lit");
+                }
+                return objs;
+
             }
-            
-            
-            
+
         } catch (Exception e) {
             throw new AxisFault("Exception", e);
         }
@@ -101,65 +83,122 @@
 
     public MessageContext invoke(MessageContext msgContext) throws AxisFault {
         try {
-            //get the implementation class for the Web Service
-            Object obj = getTheImplementationObject(msgContext);
+            if (WSDLService.STYLE_DOC.equals(msgContext.getMessageStyle())) {
+                SOAPBody body = msgContext.getEnvelope().getBody();
+                XMLStreamReader xpp = body.getPullParser(true);
 
-            //find the WebService method
-            Class ImplClass = obj.getClass();
-            AxisOperation op = msgContext.getOperation();
-            String methodName = op.getName().getLocalPart();
-
-            Method[] methods = ImplClass.getMethods();
-            for (int i = 0; i < methods.length; i++) {
-                if (methods[i].getName().equals(methodName)) {
-                    this.method = methods[i];
-                    break;
+                int event = xpp.next();
+                while (XMLStreamConstants.START_ELEMENT != event
+                    && XMLStreamConstants.END_ELEMENT != event) {
+                    event = xpp.next();
+                }
+                event = xpp.next();
+                while (XMLStreamConstants.START_ELEMENT != event
+                    && XMLStreamConstants.END_ELEMENT != event) {
+                    event = xpp.next();
+                }
+                //now we are at the parameters element event
+                String methodName = xpp.getLocalName();
+                int index = methodName.indexOf("Param");
+                QName operationName = null;
+                if (index <= 0) {
+                    if ("echoVoid".equals(methodName)) {
+                        operationName = new QName(methodName);
+                    } else {
+                        throw new AxisFault(
+                            "first element in the Body should match methodName+Return the eleemntNam is"
+                                + methodName);
+                    }
+                }else{
+                    operationName = new QName(methodName.substring(0, index));                
                 }
-            }
-            //deserialize (XML-> java)
-            Object[] parms = deserializeParameters(msgContext, method);
-            //invoke the WebService
-
-            WSDLInteropTestDocLitPortType benchmark = (WSDLInteropTestDocLitPortType) obj;
-            Object result = null;
-            if ("echoVoid".equals(methodName)) {
-               benchmark.echoVoid();
-            } else if ("echoString".equals(methodName)) {
-                result = benchmark.echoString((String) parms[0]);
-            } else if ("echoStringArray".equals(methodName)) {
-                result = benchmark.echoStringArray((String[]) parms[0]);
-            } else if ("echoStruct".equals(methodName)) {
-                result = benchmark.echoStruct((SOAPStruct) parms[0]);
-            }
-            Encoder outobj = null;
-            if(result != null){
-                if (result instanceof String || result instanceof String[]) {
-                    outobj = new SimpleTypeEncoder(result);
-                } else if (result instanceof SOAPStruct) {
-                    outobj = new SOAPStructEncoder((SOAPStruct) result);
-                } 
-            }
 
-            OMFactory fac = OMFactory.newInstance();
-            SOAPEnvelope responseEnvelope = fac.getDefaultEnvelope();
 
-            OMNamespace ns = fac.createOMNamespace("http://soapinterop.org/xsd", "res");
-            OMElement returnelement = fac.createOMElement("echoStringReturn", ns);
-            responseEnvelope.getBody().addChild(returnelement);
-            if(result != null){
-                returnelement.setBuilder(new ObjectToOMBuilder(returnelement, outobj));
-                returnelement.declareNamespace(OMConstants.ARRAY_ITEM_NSURI, "arrays");
-                returnelement.declareNamespace("http://soapinterop.org/WSDLInteropTestDocLit", "s");
-            }
-            msgContext.setEnvelope(responseEnvelope);
+                AxisService service = msgContext.getService();
+                if (operationName != null) {
+                    AxisOperation op = service.getOperation(operationName);
+                    if (op != null) {
+                        msgContext.setOperation(op);
+                    } else {
+                        throw new AxisFault("Operation not found " + operationName);
+                    }
+                } else {
+                    throw new AxisFault(
+                        "Operation Name not specifed the request String is " + methodName);
+                }
+
+                //get the implementation class for the Web Service
+                Object obj = getTheImplementationObject(msgContext);
+
+                //find the WebService method
+                Class ImplClass = obj.getClass();
+                AxisOperation op = msgContext.getOperation();
+                methodName = op.getName().getLocalPart();
+
+                Method[] methods = ImplClass.getMethods();
+                for (int i = 0; i < methods.length; i++) {
+                    if (methods[i].getName().equals(methodName)) {
+                        this.method = methods[i];
+                        break;
+                    }
+                }
+                //deserialize (XML-> java)
+                Object[] parms = deserializeParameters(msgContext, method, xpp);
+                //invoke the WebService
+
+                WSDLInteropTestDocLitPortType benchmark = (WSDLInteropTestDocLitPortType) obj;
+                Object result = null;
+                OMElement returnelement = null;
+                OMFactory fac = OMFactory.newInstance();
+                OMNamespace ns = fac.createOMNamespace("http://soapinterop.org/xsd", "doclitTypes");
+
+                if ("echoVoid".equals(methodName)) {
+                    benchmark.echoVoid();
+                    returnelement = fac.createOMElement("echoVoidReturn", ns);
+                } else if ("echoString".equals(methodName)) {
+                    result = benchmark.echoString((String) parms[0]);
+                    returnelement = fac.createOMElement("echoStringReturn", ns);
+                } else if ("echoStringArray".equals(methodName)) {
+                    result = benchmark.echoStringArray((String[]) parms[0]);
+                    returnelement = fac.createOMElement("echoStringArrayReturn", ns);
+                } else if ("echoStruct".equals(methodName)) {
+                    result = benchmark.echoStruct((SOAPStruct) parms[0]);
+                    returnelement = fac.createOMElement("echoStructReturn", ns);
+                }
+                Encoder outobj = null;
+                if (result != null) {
+                    if (result instanceof String || result instanceof String[]) {
+                        outobj = new SimpleTypeEncoder(result);
+                    } else if (result instanceof SOAPStruct) {
+                        outobj = new SOAPStructEncoder((SOAPStruct) result);
+                    }
+                }
+
+                SOAPEnvelope responseEnvelope = fac.getDefaultEnvelope();
 
-            return msgContext;
+                responseEnvelope.getBody().addChild(returnelement);
+                if (result != null) {
+                    returnelement.setBuilder(new ObjectToOMBuilder(returnelement, outobj));
+                    returnelement.declareNamespace(OMConstants.ARRAY_ITEM_NSURI, "arrays");
+                    returnelement.declareNamespace(
+                        "http://soapinterop.org/WSDLInteropTestDocLit",
+                        "s");
+
+                }
+                msgContext.setEnvelope(responseEnvelope);
+
+                return msgContext;
+            } else {
+                throw new AxisFault("this Service only supports doc-lit");
+            }
 
         } catch (SecurityException e) {
             throw AxisFault.makeFault(e);
         } catch (IllegalArgumentException e) {
             throw AxisFault.makeFault(e);
         } catch (java.rmi.RemoteException e) {
+            throw AxisFault.makeFault(e);
+        } catch (XMLStreamException e) {
             throw AxisFault.makeFault(e);
         }
     }

Modified: webservices/axis/trunk/java/modules/samples/src/java/interop/doclit/SOAPStructEncoder.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/samples/src/java/interop/doclit/SOAPStructEncoder.java?view=diff&r1=154835&r2=154836
==============================================================================
--- webservices/axis/trunk/java/modules/samples/src/java/interop/doclit/SOAPStructEncoder.java (original)
+++ webservices/axis/trunk/java/modules/samples/src/java/interop/doclit/SOAPStructEncoder.java Tue Feb 22 04:17:50 2005
@@ -55,9 +55,9 @@
                     if (VAR_STRING.equals(localName)) {
                         struct.setVarString(
                             SimpleTypeEncodingUtils.deserializeString(xpp));
-                    }else if(VAR_STRING.equals(localName)){
+                    }else if(VAR_INT.equals(localName)){
                         struct.setVarInt(SimpleTypeEncodingUtils.deserializeInt(xpp));                        
-                    }else if(VAR_STRING.equals(localName)){
+                    }else if(VAR_FLOAT.equals(localName)){
                         struct.setVarFloat(SimpleTypeEncodingUtils.deserializeFloat(xpp));                                
                     }else{
                         throw new AxisFault("Unknown elemnt "+ localName);                    

Modified: webservices/axis/trunk/java/modules/samples/src/java/org/apache/axis/testUtils/ArrayTypeEncoder.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/samples/src/java/org/apache/axis/testUtils/ArrayTypeEncoder.java?view=diff&r1=154835&r2=154836
==============================================================================
--- webservices/axis/trunk/java/modules/samples/src/java/org/apache/axis/testUtils/ArrayTypeEncoder.java (original)
+++ webservices/axis/trunk/java/modules/samples/src/java/org/apache/axis/testUtils/ArrayTypeEncoder.java Tue Feb 22 04:17:50 2005
@@ -13,99 +13,131 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
- 
-package org.apache.axis.testUtils;
-
-import org.apache.axis.engine.AxisFault;
-import org.apache.axis.om.OMConstants;
-import org.apache.axis.om.OMException;
-import org.xml.sax.ContentHandler;
-import org.xml.sax.SAXException;
-
-import javax.xml.stream.XMLStreamConstants;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamReader;
-import java.util.ArrayList;
-
-
-public class ArrayTypeEncoder implements Encoder {
-    private Object[] obj = null;
-    private Encoder arrayTypeEncoder;
-
-    public ArrayTypeEncoder(Object[] obj, Encoder arrayTypeEncoder) {
-        this.obj = obj;
-        this.arrayTypeEncoder = arrayTypeEncoder;
-    }
-
-    public ArrayTypeEncoder(Encoder arrayTypeEncoder) {
-        this.arrayTypeEncoder = arrayTypeEncoder;
-    }
-
-
-    public void serialize(ContentHandler cHandler) throws OMException {
-        try {
-            for (int i = 0; i < obj.length; i++) {
-                cHandler.startElement(OMConstants.ARRAY_ITEM_NSURI, OMConstants.ARRAY_ITEM_LOCALNAME, OMConstants.ARRAY_ITEM_QNAME, null);
-                arrayTypeEncoder.setObject(obj[i]);
-                arrayTypeEncoder.serialize(cHandler);
-                cHandler.endElement(OMConstants.ARRAY_ITEM_NSURI, OMConstants.ARRAY_ITEM_LOCALNAME, OMConstants.ARRAY_ITEM_QNAME);
-            }
-        } catch (SAXException e) {
-            throw new OMException(e);
-        }
-
-    }
-
-    /**
-     * @return
-     */
-    public Encoder getArrayTypeEncoder() {
-        return arrayTypeEncoder;
-    }
-
-    /**
-     * @param encoder
-     */
-    public void setArrayTypeEncoder(Encoder encoder) {
-        arrayTypeEncoder = encoder;
-    }
-
-    public Object deSerialize(XMLStreamReader xpp) throws AxisFault {
-        ArrayList objs = new ArrayList();
-
-        try {
-            int event = xpp.next();
-            while (XMLStreamConstants.START_ELEMENT != event
-                    && XMLStreamConstants.END_ELEMENT != event) {
-                event = xpp.next();
-            }
-            if (XMLStreamConstants.END_ELEMENT == event) {
-                return null;
-            }
-
-//            event = xpp.next();
-            while (true) {
-                if (XMLStreamConstants.START_ELEMENT == event) {
-                    objs.add(arrayTypeEncoder.deSerialize(xpp));
-                } else if (XMLStreamConstants.END_ELEMENT == event) {
-                    break;
-                } else if (XMLStreamConstants.END_DOCUMENT == event) {
-                    throw new AxisFault("premature and of file");
-                }
-                event = xpp.next();
-            }
-            Object[] vals = new Object[objs.size()];
-            for (int i = 0; i < objs.size(); i++) {
-                vals[i] = objs.get(i);
-            }
-            return vals;
-        } catch (XMLStreamException e) {
-            throw AxisFault.makeFault(e);
-        }
-    }
-
-    public void setObject(Object obj) {
-        this.obj = (Object[]) obj;
-    }
-
-}
+
+package org.apache.axis.testUtils;
+
+import org.apache.axis.engine.AxisFault;
+import org.apache.axis.om.OMConstants;
+import org.apache.axis.om.OMException;
+import org.xml.sax.ContentHandler;
+import org.xml.sax.SAXException;
+
+import javax.xml.stream.XMLStreamConstants;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import java.util.ArrayList;
+
+public class ArrayTypeEncoder implements Encoder {
+    private Object[] obj = null;
+    private Encoder arrayTypeEncoder;
+    private String arrayelmentLocalName = OMConstants.ARRAY_ITEM_LOCALNAME;
+    private String arrayelmentNSsURI = OMConstants.ARRAY_ITEM_NSURI;
+    private String arrayelmentQName = OMConstants.ARRAY_ITEM_QNAME;
+
+    public ArrayTypeEncoder(Object[] obj, Encoder arrayTypeEncoder) {
+        this.obj = obj;
+        this.arrayTypeEncoder = arrayTypeEncoder;
+    }
+
+    public ArrayTypeEncoder(Encoder arrayTypeEncoder) {
+        this.arrayTypeEncoder = arrayTypeEncoder;
+    }
+
+    public ArrayTypeEncoder(
+        Object[] obj,
+        Encoder arrayTypeEncoder,
+        String arrayelmentLocalName,
+        String arrayelmentNSsURI,
+        String arrayelmentQName) {
+        this.obj = obj;
+        this.arrayTypeEncoder = arrayTypeEncoder;
+        this.arrayelmentLocalName = arrayelmentLocalName;
+        this.arrayelmentNSsURI = arrayelmentNSsURI;
+        this.arrayelmentQName = arrayelmentQName;
+    }
+
+    public ArrayTypeEncoder(
+        Encoder arrayTypeEncoder,
+        String arrayelmentLocalName,
+        String arrayelmentNSsURI,
+        String arrayelmentQName) {
+        this.arrayTypeEncoder = arrayTypeEncoder;
+        this.arrayelmentLocalName = arrayelmentLocalName;
+        this.arrayelmentNSsURI = arrayelmentNSsURI;
+        this.arrayelmentQName = arrayelmentQName;
+    }
+
+    public void serialize(ContentHandler cHandler) throws OMException {
+        try {
+            for (int i = 0; i < obj.length; i++) {
+                cHandler.startElement(
+                    OMConstants.ARRAY_ITEM_NSURI,
+                    OMConstants.ARRAY_ITEM_LOCALNAME,
+                    OMConstants.ARRAY_ITEM_QNAME,
+                    null);
+                arrayTypeEncoder.setObject(obj[i]);
+                arrayTypeEncoder.serialize(cHandler);
+                cHandler.endElement(
+                    OMConstants.ARRAY_ITEM_NSURI,
+                    OMConstants.ARRAY_ITEM_LOCALNAME,
+                    OMConstants.ARRAY_ITEM_QNAME);
+            }
+        } catch (SAXException e) {
+            throw new OMException(e);
+        }
+
+    }
+
+    /**
+     * @return
+     */
+    public Encoder getArrayTypeEncoder() {
+        return arrayTypeEncoder;
+    }
+
+    /**
+     * @param encoder
+     */
+    public void setArrayTypeEncoder(Encoder encoder) {
+        arrayTypeEncoder = encoder;
+    }
+
+    public Object deSerialize(XMLStreamReader xpp) throws AxisFault {
+        ArrayList objs = new ArrayList();
+
+        try {
+            int event = xpp.next();
+            while (XMLStreamConstants.START_ELEMENT != event
+                && XMLStreamConstants.END_ELEMENT != event) {
+                event = xpp.next();
+            }
+            if (XMLStreamConstants.END_ELEMENT == event) {
+                return null;
+            }
+
+            //            event = xpp.next();
+            while (true) {
+                if (XMLStreamConstants.START_ELEMENT == event) {
+                    objs.add(arrayTypeEncoder.deSerialize(xpp));
+                } else if (XMLStreamConstants.END_ELEMENT == event) {
+                    break;
+                } else if (XMLStreamConstants.END_DOCUMENT == event) {
+                    throw new AxisFault("premature and of file");
+                }
+                event = xpp.next();
+            }
+            Object[] vals = new Object[objs.size()];
+            for (int i = 0; i < objs.size(); i++) {
+                vals[i] = objs.get(i);
+            }
+            return vals;
+        } catch (XMLStreamException e) {
+            throw AxisFault.makeFault(e);
+        }
+    }
+
+    public void setObject(Object obj) {
+        this.obj = (Object[]) obj;
+    }
+
+}

Modified: webservices/axis/trunk/java/modules/samples/src/java/org/apache/axis/testUtils/SimpleTypeEncoder.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/samples/src/java/org/apache/axis/testUtils/SimpleTypeEncoder.java?view=diff&r1=154835&r2=154836
==============================================================================
--- webservices/axis/trunk/java/modules/samples/src/java/org/apache/axis/testUtils/SimpleTypeEncoder.java (original)
+++ webservices/axis/trunk/java/modules/samples/src/java/org/apache/axis/testUtils/SimpleTypeEncoder.java Tue Feb 22 04:17:50 2005
@@ -49,8 +49,13 @@
                     cHandler.startElement(OMConstants.ARRAY_ITEM_NSURI,
                             OMConstants.ARRAY_ITEM_LOCALNAME,
                             OMConstants.ARRAY_ITEM_QNAME,
-                            null);
-                    str = strs[i].toCharArray();
+                            null);
+                    if(strs[i]!=null){
+                        str = strs[i].toCharArray();
+                    }else{
+                        str = "".toCharArray();
+                    }
+                    
                     cHandler.characters(str, 0, str.length);
                     cHandler.endElement(OMConstants.ARRAY_ITEM_NSURI, OMConstants.ARRAY_ITEM_LOCALNAME, OMConstants.ARRAY_ITEM_QNAME);
                 }