1 16 package org.apache.axis2.clientapi; 17 18 import org.apache.axis2.context.MessageContext; 19 import org.apache.axis2.description.TransportInDescription; 20 import org.apache.axis2.engine.AxisEngine; 21 import org.apache.axis2.engine.AxisFault; 22 import org.apache.axis2.soap.SOAPEnvelope; 23 import org.apache.axis2.transport.TransportUtils; 24 25 26 public class TwoChannelBasedSender { 27 public static MessageContext send(MessageContext msgctx,TransportInDescription transportIn) throws AxisFault{ 28 29 AxisEngine engine = new AxisEngine(msgctx.getSystemContext()); 30 31 32 engine.send(msgctx); 33 34 MessageContext response = 35 new MessageContext(msgctx.getSystemContext(), 36 msgctx.getSessionContext(), 37 msgctx.getTransportIn(), 38 msgctx.getTransportOut()); 39 response.setProperty( 40 MessageContext.TRANSPORT_IN, 41 msgctx.getProperty(MessageContext.TRANSPORT_IN)); 42 response.setServerSide(false); 43 response.setOperationContext(msgctx.getOperationContext()); 44 response.setServiceContext(msgctx.getServiceContext()); 45 46 response.setDoingREST(msgctx.isDoingREST()); 48 49 SOAPEnvelope resenvelope = TransportUtils.createSOAPMessage(response); 50 51 if (resenvelope != null) { 52 response.setEnvelope(resenvelope); 53 engine = new AxisEngine(msgctx.getSystemContext()); 54 engine.receive(response); 55 56 } else { 57 throw new AxisFault("Blocking invocation always expect a response"); 58 } 59 return response; 60 } 61 } 62 | Popular Tags |