1 16 package org.apache.axis2.receivers; 17 18 import org.apache.axis2.context.MessageContext; 19 import org.apache.axis2.engine.AxisEngine; 20 import org.apache.axis2.engine.AxisFault; 21 import org.apache.commons.logging.Log; 22 import org.apache.commons.logging.LogFactory; 23 24 27 public abstract class AbstractInOutAsyncMessageReceiver 28 extends AbstractMessageReceiver { 29 protected Log log = LogFactory.getLog(getClass()); 30 public abstract void invokeBusinessLogic(MessageContext inMessage,ServerCallback callback) 31 throws AxisFault; 32 33 public final void recieve(final MessageContext messgeCtx) throws AxisFault { 34 final ServerCallback callback = new ServerCallback() { 35 public void handleResult(MessageContext result)throws AxisFault { 36 AxisEngine engine = 37 new AxisEngine(messgeCtx.getOperationContext().getServiceContext().getEngineContext()); 38 engine.send(messgeCtx); 39 } 40 public void handleFault(AxisFault fault)throws AxisFault{ 41 AxisEngine engine = new AxisEngine(messgeCtx.getOperationContext().getServiceContext().getEngineContext()); 42 engine.handleFault(messgeCtx,fault); 43 } 44 }; 45 Runnable theadedTask = new Runnable () { 46 public void run() { 47 try { 48 invokeBusinessLogic(messgeCtx,callback); 49 } catch (AxisFault e) { 50 log.error(e); 51 } 52 } 53 }; 54 (new Thread (theadedTask)).start(); 55 } 56 57 } 58 | Popular Tags |