001 package railo.runtime.util; 002 003 import railo.runtime.exp.PageException; 004 import railo.runtime.net.amf.CFMLProxy; 005 import railo.runtime.op.Caster; 006 import flex.messaging.FlexContext; 007 import flex.messaging.MessageException; 008 import flex.messaging.config.ConfigMap; 009 import flex.messaging.messages.Message; 010 import flex.messaging.messages.RemotingMessage; 011 import flex.messaging.services.ServiceAdapter; 012 013 public class BlazeDSImpl implements BlazeDS { 014 015 016 private ConfigMap properties; 017 018 019 public Object invoke(ServiceAdapter serviceAdapter, Message message){ 020 021 022 //RemotingDestination remotingDestination = (RemotingDestination)serviceAdapter.getDestination(); 023 RemotingMessage remotingMessage = (RemotingMessage)message; 024 //FactoryInstance factoryInstance = remotingDestination.getFactoryInstance(); 025 /* 026 print.out("className:"+remotingMessage.getSource()); 027 print.out("methodName:"+remotingMessage.getOperation()); 028 print.out("params:"); 029 print.out(remotingMessage.getParameters().toArray()); 030 */ 031 try { 032 Object rtn = new CFMLProxy().invokeBody( 033 null,properties, 034 FlexContext.getServletContext(), 035 FlexContext.getServletConfig(), 036 FlexContext.getHttpRequest(), 037 FlexContext.getHttpResponse(), 038 remotingMessage.getSource(), 039 remotingMessage.getOperation(), 040 remotingMessage.getParameters()); 041 042 return rtn; 043 } 044 catch (Exception e) { 045 e.printStackTrace();// TODO 046 String msg=e.getMessage(); 047 048 MessageException me = new MessageException(Caster.toClassName(e) + " : " + msg); 049 me.setRootCause(e); 050 me.setCode("Server.Processing"); 051 me.setRootCause(e); 052 053 if(e instanceof PageException){ 054 PageException pe=(PageException) e; 055 me.setDetails(pe.getDetail()); 056 me.setMessage(pe.getMessage()); 057 me.setCode(pe.getErrorCode()); 058 } 059 060 throw me; 061 } 062 } 063 064 065 /** 066 * @see railo.runtime.util.BlazeDS#init(flex.messaging.config.ConfigMap) 067 */ 068 public void init(ConfigMap properties) { 069 this.properties=properties; 070 } 071 }