package railo.runtime.util; import railo.runtime.exp.PageException; import railo.runtime.net.amf.CFMLProxy; import railo.runtime.op.Caster; import flex.messaging.FlexContext; import flex.messaging.MessageException; import flex.messaging.config.ConfigMap; import flex.messaging.messages.Message; import flex.messaging.messages.RemotingMessage; import flex.messaging.services.ServiceAdapter; public class BlazeDSImpl implements BlazeDS { private ConfigMap properties; public Object invoke(ServiceAdapter serviceAdapter, Message message){ //RemotingDestination remotingDestination = (RemotingDestination)serviceAdapter.getDestination(); RemotingMessage remotingMessage = (RemotingMessage)message; //FactoryInstance factoryInstance = remotingDestination.getFactoryInstance(); /* print.out("className:"+remotingMessage.getSource()); print.out("methodName:"+remotingMessage.getOperation()); print.out("params:"); print.out(remotingMessage.getParameters().toArray()); */ try { Object rtn = new CFMLProxy().invokeBody( null,properties, FlexContext.getServletContext(), FlexContext.getServletConfig(), FlexContext.getHttpRequest(), FlexContext.getHttpResponse(), remotingMessage.getSource(), remotingMessage.getOperation(), remotingMessage.getParameters()); return rtn; } catch (Exception e) { e.printStackTrace();// TODO String msg=e.getMessage(); MessageException me = new MessageException(Caster.toClassName(e) + " : " + msg); me.setRootCause(e); me.setCode("Server.Processing"); me.setRootCause(e); if(e instanceof PageException){ PageException pe=(PageException) e; me.setDetails(pe.getDetail()); me.setMessage(pe.getMessage()); me.setCode(pe.getErrorCode()); } throw me; } } /** * @see railo.runtime.util.BlazeDS#init(flex.messaging.config.ConfigMap) */ public void init(ConfigMap properties) { this.properties=properties; } }