You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by he...@apache.org on 2005/02/22 08:42:13 UTC

svn commit: r154818 - in webservices/axis/trunk/java/modules: core/src/java/org/apache/axis/ core/src/java/org/apache/axis/engine/ core/src/java/org/apache/axis/providers/ core/src/java/org/apache/axis/transport/http/ samples/ samples/src/java/interop/doclit/

Author: hemapani
Date: Mon Feb 21 23:42:10 2005
New Revision: 154818

URL: http://svn.apache.org/viewcvs?view=rev&rev=154818
Log:
fix the providers for doc-lit

Modified:
    webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/Constants.java
    webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/AxisEngine.java
    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/providers/RawXMLProvider.java
    webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/transport/http/HTTPTransportSender.java
    webservices/axis/trunk/java/modules/samples/maven.xml
    webservices/axis/trunk/java/modules/samples/src/java/interop/doclit/InteropProvider.java
    webservices/axis/trunk/java/modules/samples/src/java/interop/doclit/service.xml

Modified: webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/Constants.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/Constants.java?view=diff&r1=154817&r2=154818
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/Constants.java (original)
+++ webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/Constants.java Mon Feb 21 23:42:10 2005
@@ -102,5 +102,5 @@
     /**
      * Field METHOD_NAME_ESCAPE_CHARACTOR
      */
-    public static final char METHOD_NAME_ESCAPE_CHARACTOR = '#';
+    public static final char METHOD_NAME_ESCAPE_CHARACTOR = '?';
 }

Modified: webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/AxisEngine.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/AxisEngine.java?view=diff&r1=154817&r2=154818
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/AxisEngine.java (original)
+++ webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/AxisEngine.java Mon Feb 21 23:42:10 2005
@@ -15,11 +15,14 @@
  */
 package org.apache.axis.engine;
 
+
+
 import org.apache.axis.context.MessageContext;
 import org.apache.axis.description.AxisGlobal;
 import org.apache.axis.description.AxisService;
 import org.apache.axis.description.AxisTransport;
 import org.apache.axis.om.OMFactory;
+import org.apache.axis.om.SOAPBody;
 import org.apache.axis.om.SOAPEnvelope;
 import org.apache.axis.transport.TransportSenderLocator;
 import org.apache.commons.logging.Log;
@@ -131,11 +134,13 @@
             context.setProcessingFault(true);
 
             // create a SOAP envelope with the Fault
+            MessageContext faultContext = new MessageContext(context.getGlobalContext().getRegistry(),context.getProperties(),context.getSessionContext());
             SOAPEnvelope envelope =
                     OMFactory.newInstance().getDefaultEnvelope();
 
             // TODO do we need to set old Headers back?
-            envelope.getBody().addFault(new AxisFault(e.getMessage(), e));
+            SOAPBody body = envelope.getBody();
+            body.addFault(new AxisFault(e.getMessage(), e));
             context.setEnvelope(envelope);
 
             // send the error
@@ -195,6 +200,7 @@
             // startet rolling
             chain.invoke(context);
         } catch (AxisFault error) {
+            error.printStackTrace();
             handleFault(context, error);
         }
     }

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=154817&r2=154818
==============================================================================
--- 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 Mon Feb 21 23:42:10 2005
@@ -70,7 +70,7 @@
             QName operationName = null;
             if (index > 0) {
                 serviceName = new QName(serviceAndMethodStr.substring(0,
-                                index - 1));
+                                index ));
                 operationName = new QName(serviceAndMethodStr.substring(index
                                         + 1));
             } else {

Modified: webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/providers/RawXMLProvider.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/providers/RawXMLProvider.java?view=diff&r1=154817&r2=154818
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/providers/RawXMLProvider.java (original)
+++ webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/providers/RawXMLProvider.java Mon Feb 21 23:42:10 2005
@@ -23,9 +23,11 @@
 import org.apache.axis.engine.Provider;
 import org.apache.axis.om.OMElement;
 import org.apache.axis.om.OMFactory;
+import org.apache.axis.om.OMNamespace;
 import org.apache.axis.om.SOAPEnvelope;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.wsdl.WSDLService;
 
 import javax.xml.namespace.QName;
 import java.lang.reflect.Method;
@@ -144,18 +146,43 @@
                             parameters[0].getName())) {
                 OMElement methodElement =
                         msgContext.getEnvelope().getBody().getFirstElement();
-                OMElement parmeter = methodElement.getFirstElement();
-                Object[] parms = new Object[]{parmeter};
-
-                // invoke the WebService
-                OMElement result = (OMElement) method.invoke(obj,
-                        parms);
+                        
+                OMElement parmeter = null;        
+                SOAPEnvelope envelope = null;
                 MessageContext msgContext1 = new MessageContext(
                         msgContext.getGlobalContext().getRegistry(),
                         msgContext.getProperties(), msgContext.getSessionContext());
-                SOAPEnvelope envelope =
-                        OMFactory.newInstance().getDefaultEnvelope();
-                envelope.getBody().setFirstChild(result);
+                        
+                if(WSDLService.STYLE_DOC.equals(msgContext.getMessageStyle())){
+                    parmeter = methodElement;
+                    Object[] parms = new Object[]{parmeter};
+
+                    // invoke the WebService
+                    OMElement result = (OMElement) method.invoke(obj,
+                            parms);
+                    envelope =
+                            OMFactory.newInstance().getDefaultEnvelope();
+                    envelope.getBody().setFirstChild(result);
+                
+                }else if(WSDLService.STYLE_RPC.equals(msgContext.getMessageStyle())){
+                    parmeter = methodElement.getFirstElement();
+                    Object[] parms = new Object[]{parmeter};
+
+                    // invoke the WebService
+                    OMElement result = (OMElement) method.invoke(obj,
+                            parms);
+                    OMFactory fac = OMFactory.newInstance();       
+                    envelope =
+                            OMFactory.newInstance().getDefaultEnvelope();
+
+                    OMNamespace ns = fac.createOMNamespace("http://soapenc/", "res");
+                     OMElement responseMethodName =
+                             fac.createOMElement(methodName + "Response", ns);
+                    responseMethodName.addChild(result);
+                    envelope.getBody().addChild(responseMethodName);                            
+                }else{
+                    throw new AxisFault("Unknown style ");
+                }
                 msgContext1.setEnvelope(envelope);
                 return msgContext1;
             } else {

Modified: webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/transport/http/HTTPTransportSender.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/transport/http/HTTPTransportSender.java?view=diff&r1=154817&r2=154818
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/transport/http/HTTPTransportSender.java (original)
+++ webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/transport/http/HTTPTransportSender.java Mon Feb 21 23:42:10 2005
@@ -114,7 +114,9 @@
     protected void finalizeSending(MessageContext msgContext,Writer writer)
             throws AxisFault {
         try {
-            socket.shutdownOutput();
+            if(socket != null){
+                socket.shutdownOutput();
+            }
         } catch (IOException e) {
             throw new AxisFault(e.getMessage(),e);
         }

Modified: webservices/axis/trunk/java/modules/samples/maven.xml
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/samples/maven.xml?view=diff&r1=154817&r2=154818
==============================================================================
--- webservices/axis/trunk/java/modules/samples/maven.xml (original)
+++ webservices/axis/trunk/java/modules/samples/maven.xml Mon Feb 21 23:42:10 2005
@@ -57,7 +57,7 @@
 				<include name="interop/doclit/**/*.class"/>
 			</fileset>
 		</copy>
-		<copy file="src/java/interop/doclit/service.xml" tofile="target/jar-code/sample3/META-INF/service.xml"/> 
+		<copy file="src/java/interop/doclit/service.xml" tofile="target/jar-code/sample4/META-INF/service.xml"/> 
 		<jar jarfile="target/test-resources/samples/services/interop-doclit.jar" basedir="target/jar-code/sample4" >
 			<include name="**" />
 		</jar>

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=154817&r2=154818
==============================================================================
--- 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 Mon Feb 21 23:42:10 2005
@@ -23,12 +23,14 @@
 import org.apache.axis.om.OMElement;
 import org.apache.axis.om.OMFactory;
 import org.apache.axis.om.OMNamespace;
+import org.apache.axis.om.SOAPBody;
 import org.apache.axis.om.SOAPEnvelope;
 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.stream.XMLStreamConstants;
 import javax.xml.stream.XMLStreamReader;
@@ -44,44 +46,54 @@
 
     public Object[] deserializeParameters(MessageContext msgContext, Method method)
         throws AxisFault {
-        XMLStreamReader xpp = msgContext.getSoapOperationElement().getPullParser(true);
-        Class[] parms = method.getParameterTypes();
-        Object[] objs = new Object[parms.length];
+            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];
 
-        try {
-            int event = xpp.next();
-            while (XMLStreamConstants.START_ELEMENT != event
-                && XMLStreamConstants.END_ELEMENT != event) {
-                event = xpp.next();
-            }
-            //now we are at the opearion element event
-            event = xpp.next();
-            while (XMLStreamConstants.START_ELEMENT != event
-                && XMLStreamConstants.END_ELEMENT != event) {
-                event = xpp.next();
-            }
-            //now we are at the parameter element event
 
-            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 {
-                        throw new UnsupportedOperationException("UnSupported type "+parms[i]);
+                    int event = xpp.next();
+                    while (XMLStreamConstants.START_ELEMENT != event
+                        && XMLStreamConstants.END_ELEMENT != event) {
+                        event = xpp.next();
                     }
-                }
-                return objs;
+                    
+                    event = xpp.next();
+                    while (XMLStreamConstants.START_ELEMENT != event
+                        && XMLStreamConstants.END_ELEMENT != event) {
+                        event = xpp.next();
+                    }
+                //now we are at the parameters element event
 
-            }
+                    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 {
+                                throw new UnsupportedOperationException("UnSupported type "+parms[i]);
+                            }
+                        }
+                        return objs;
+
+                    }
+                
+            }else{
+                throw new AxisFault("this Service only supports doc-lit");
+            }
+            
+            
+            
         } catch (Exception e) {
             throw new AxisFault("Exception", e);
         }
@@ -131,12 +143,10 @@
             OMFactory fac = OMFactory.newInstance();
             SOAPEnvelope responseEnvelope = fac.getDefaultEnvelope();
 
-            OMNamespace ns = fac.createOMNamespace("http://soapinterop.org/WSDLInteropTestDocLit", "res");
-            OMElement responseMethodName = fac.createOMElement(methodName + "Response", ns);
-            responseEnvelope.getBody().addChild(responseMethodName);
+            OMNamespace ns = fac.createOMNamespace("http://soapinterop.org/xsd", "res");
+            OMElement returnelement = fac.createOMElement("echoStringReturn", ns);
+            responseEnvelope.getBody().addChild(returnelement);
             if(result != null){
-                OMElement returnelement = fac.createOMElement(methodName + "Return", ns);
-                responseMethodName.addChild(returnelement);
                 returnelement.setBuilder(new ObjectToOMBuilder(returnelement, outobj));
                 returnelement.declareNamespace(OMConstants.ARRAY_ITEM_NSURI, "arrays");
                 returnelement.declareNamespace("http://soapinterop.org/WSDLInteropTestDocLit", "s");

Modified: webservices/axis/trunk/java/modules/samples/src/java/interop/doclit/service.xml
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/samples/src/java/interop/doclit/service.xml?view=diff&r1=154817&r2=154818
==============================================================================
--- webservices/axis/trunk/java/modules/samples/src/java/interop/doclit/service.xml (original)
+++ webservices/axis/trunk/java/modules/samples/src/java/interop/doclit/service.xml Mon Feb 21 23:42:10 2005
@@ -1,4 +1,4 @@
-<service provider="interop.doclit..InteropProvider" style="doc" contextPath="services">
+<service provider="interop.doclit.InteropProvider" style="doc" contextPath="services">
     <java:implementation class="interop.doclit.WSDLInteropTestDocLitPortType" xmlns:java="http://ws.apache.org/axis2/deployment/java"/>
     <operation name="echoString"/>
     <operation name="echoStringArray"/>