`
风沙星辰
  • 浏览: 54865 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

spring整合flex

    博客分类:
  • flex
阅读更多


需要一个工厂类:
import org.springframework.context.ApplicationContext;    
import org.springframework.web.context.support.WebApplicationContextUtils;    
import org.springframework.beans.BeansException;    
import org.springframework.beans.factory.NoSuchBeanDefinitionException;    
   
import flex.messaging.FactoryInstance;    
import flex.messaging.FlexFactory;    
import flex.messaging.config.ConfigMap;    
import flex.messaging.services.ServiceException;    
   
public class SpringFactory implements FlexFactory    
{    
    private static final String SOURCE = "source";    
   
       public void initialize(String id, ConfigMap configMap) {}    
   
        public FactoryInstance createFactoryInstance(String id, ConfigMap properties)    
    {    
        SpringFactoryInstance instance = new SpringFactoryInstance(this, id, properties);    
        instance.setSource(properties.getPropertyAsString(SOURCE, instance.getId()));    
        return instance;    
    } // end method createFactoryInstance()    
   
        public Object lookup(FactoryInstance inst)    
    {    
        SpringFactoryInstance factoryInstance = (SpringFactoryInstance) inst;    
        return factoryInstance.lookup();    
    }     
   
   
    static class SpringFactoryInstance extends FactoryInstance    
    {    
        SpringFactoryInstance(SpringFactory factory, String id, ConfigMap properties)    
        {    
            super(factory, id, properties);    
        }    
   
   
        public String toString()    
        {    
            return "SpringFactory instance for id=" + getId() + " source=" + getSource() + " scope=" + getScope();    
        }    
   
        public Object lookup()     
        {    
            ApplicationContext appContext = WebApplicationContextUtils.getWebApplicationContext(flex.messaging.FlexContext.getServletConfig().getServletContext());
            String beanName = getSource();    
            try   
            {    
                return appContext.getBean(beanName);    
            }    
            catch (NoSuchBeanDefinitionException nexc)    
            {    
                ServiceException e = new ServiceException();    
                String msg = "Spring service named '" + beanName + "' does not exist.";    
                e.setMessage(msg);    
                e.setRootCause(nexc);    
                e.setDetails(msg);    
                e.setCode("Server.Processing");    
                throw e;    
            }    
            catch (BeansException bexc)    
            {    
                ServiceException e = new ServiceException();    
                String msg = "Unable to create Spring service named '" + beanName + "' ";    
                e.setMessage(msg);    
                e.setRootCause(bexc);    
                e.setDetails(msg);    
                e.setCode("Server.Processing");    
                throw e;    
            }     
        }    
            
    }        
}

然后在services-config.xml配置:
<factories>  
        <factory id="spring" class="com.factory.SpringFactory"/>   
</factories>

之后在remoting-config.xml配置destination就OK了:
	<destination id="userBiz">
		
        <properties>
        	
            <factory>spring</factory>
            <source>userBiz</source>
            <scope>application</scope>
        </properties>
    </destination>
1
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics