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 di...@apache.org on 2005/11/22 19:22:52 UTC

svn commit: r348202 - in /webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/client: InOutMEPClient.java TwoWayTransportBasedSender.java

Author: dims
Date: Tue Nov 22 10:22:48 2005
New Revision: 348202

URL: http://svn.apache.org/viewcvs?rev=348202&view=rev
Log:
get rid of extra class with just one method.


Removed:
    webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/client/TwoWayTransportBasedSender.java
Modified:
    webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/client/InOutMEPClient.java

Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/client/InOutMEPClient.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/client/InOutMEPClient.java?rev=348202&r1=348201&r2=348202&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/client/InOutMEPClient.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/client/InOutMEPClient.java Tue Nov 22 10:22:48 2005
@@ -34,6 +34,7 @@
 import org.apache.axis2.soap.SOAPEnvelope;
 import org.apache.axis2.soap.SOAPFault;
 import org.apache.axis2.transport.TransportListener;
+import org.apache.axis2.transport.TransportUtils;
 import org.apache.axis2.util.UUIDGenerator;
 import org.apache.wsdl.WSDLConstants;
 
@@ -179,7 +180,7 @@
 
             //Send the SOAP Message and receive a response                
             MessageContext response =
-                    TwoWayTransportBasedSender.send(msgctx, listenerTransport);
+                    send(msgctx, listenerTransport);
 
             //check for a fault and return the result
             SOAPEnvelope resenvelope = response.getEnvelope();
@@ -413,7 +414,7 @@
                 msgctx.setServiceContext(serviceContext);
                 //send the request and wait for reponse
                 MessageContext response =
-                        TwoWayTransportBasedSender.send(msgctx, listenerTransport);
+                        send(msgctx, listenerTransport);
                 //call the callback                        
                 SOAPEnvelope resenvelope = response.getEnvelope();
                 SOAPBody body = resenvelope.getBody();
@@ -455,5 +456,47 @@
      */
     public long getTimeOutInMilliSeconds() {
         return timeOutInMilliSeconds;
+    }
+
+    /**
+     * Sends the message using a two way transport and waits for a response
+     * 
+     * @param msgctx
+     * @param transportIn
+     * @return
+     * @throws AxisFault
+     */
+    public MessageContext send(MessageContext msgctx,
+                                      TransportInDescription transportIn) throws AxisFault {
+
+        AxisEngine engine = new AxisEngine(msgctx.getSystemContext());
+        engine.send(msgctx);
+
+        //create the response
+        MessageContext response =
+                new MessageContext(msgctx.getSystemContext(),
+                        msgctx.getSessionContext(),
+                        msgctx.getTransportIn(),
+                        msgctx.getTransportOut());
+        response.setProperty(MessageContext.TRANSPORT_IN,
+                             msgctx.getProperty(MessageContext.TRANSPORT_IN));
+        msgctx.getAxisOperation().registerOperationContext(response,msgctx.getOperationContext());
+        response.setServerSide(false);
+        response.setServiceContext(msgctx.getServiceContext());
+        response.setServiceGroupContext(msgctx.getServiceGroupContext());
+
+        //If request is REST we assume the response is REST, so set the variable
+        response.setDoingREST(msgctx.isDoingREST());
+
+        SOAPEnvelope resenvelope = TransportUtils.createSOAPMessage(response, msgctx.getEnvelope().getNamespace().getName());
+
+        if (resenvelope != null) {
+            response.setEnvelope(resenvelope);
+            engine = new AxisEngine(msgctx.getSystemContext());
+            engine.receive(response);
+        } else {
+            throw new AxisFault(Messages.getMessage("blockingInvocationExpectsResponse"));
+        }
+        return response;
     }
 }