`

转 Flex+Spring配置

    博客分类:
  • flex
阅读更多

 flex拓扑图制作只是一个简单的例子,可以运行,只是简单的呈现部分,如果要实现具体的拓扑图的功能,需要连接数据库,这里只简单说说flex与spring的结合,有了spring,再与hibernate以及struts就简单多了。
     1、首先是web.xml需要添加flex的配置,增加如下的内容:
     

Java代码 复制代码
  1. <listener>   
  2.         <listener-class>flex.messaging.HttpFlexSession</listener-class>   
  3.     </listener>    
  4.        
  5.     <!-- MessageBroker Servlet -->   
  6.     <servlet>   
  7.         <servlet-name>MessageBrokerServlet</servlet-name>   
  8.         <display-name>MessageBrokerServlet</display-name>   
  9.         <servlet-class>flex.messaging.MessageBrokerServlet</servlet-class>   
  10.         <init-param>   
  11.             <param-name>services.configuration.file</param-name>   
  12.             <param-value>/WEB-INF/flex/services-config.xml</param-value>   
  13.        </init-param>   
  14.         <init-param>   
  15.             <param-name>flex.write.path</param-name>   
  16.             <param-value>/WEB-INF/flex</param-value>   
  17.         </init-param>   
  18.         <load-on-startup>1</load-on-startup>   
  19.     </servlet>   
  20.   
  21.     <servlet>   
  22.         <servlet-name>FlexMxmlServlet</servlet-name>   
  23.         <display-name>MXML Processor</display-name>   
  24.         <description>Servlet wrapper for the Mxml Compiler</description>   
  25.         <servlet-class>flex.bootstrap.BootstrapServlet</servlet-class>   
  26.         <init-param>   
  27.             <param-name>servlet.class</param-name>   
  28.             <param-value>flex.webtier.server.j2ee.MxmlServlet</param-value>   
  29.         </init-param>   
  30.         <init-param>   
  31.             <param-name>webtier.configuration.file</param-name>   
  32.             <param-value>/WEB-INF/flex/flex-webtier-config.xml</param-value>   
  33.         </init-param>   
  34.        <load-on-startup>1</load-on-startup>   
  35.     </servlet>   
  36.   
  37.     <servlet>   
  38.         <servlet-name>FlexSwfServlet</servlet-name>   
  39.         <display-name>SWF Retriever</display-name>   
  40.         <servlet-class>flex.bootstrap.BootstrapServlet</servlet-class>   
  41.         <init-param>   
  42.             <param-name>servlet.class</param-name>   
  43.             <param-value>flex.webtier.server.j2ee.SwfServlet</param-value>   
  44.         </init-param>   
  45.         <!-- SwfServlet must be initialized after MxmlServlet -->   
  46.         <load-on-startup>2</load-on-startup>   
  47.     </servlet>   
  48.   
  49.     <servlet>   
  50.         <servlet-name>FlexForbiddenServlet</servlet-name>   
  51.         <display-name>Prevents access to *.as/*.swc files</display-name>   
  52.         <servlet-class>flex.bootstrap.BootstrapServlet</servlet-class>   
  53.         <init-param>   
  54.             <param-name>servlet.class</param-name>   
  55.             <param-value>flex.webtier.server.j2ee.ForbiddenServlet</param-value>   
  56.         </init-param>   
  57.     </servlet>   
  58.   
  59.     <servlet>   
  60.         <servlet-name>FlexInternalServlet</servlet-name>   
  61.         <servlet-class>flex.bootstrap.BootstrapServlet</servlet-class>   
  62.         <init-param>   
  63.             <param-name>servlet.class</param-name>   
  64.             <param-value>flex.webtier.server.j2ee.filemanager.FileManagerServlet</param-value>   
  65.         </init-param>   
  66.         <load-on-startup>10</load-on-startup>   
  67.     </servlet>   
  68.   
  69.     <servlet-mapping>   
  70.         <servlet-name>MessageBrokerServlet</servlet-name>   
  71.         <url-pattern>/messagebroker/*</url-pattern>   
  72.     </servlet-mapping>   
  73.   
  74.     <servlet-mapping>   
  75.         <servlet-name>FlexMxmlServlet</servlet-name>   
  76.         <url-pattern>*.mxml</url-pattern>   
  77.     </servlet-mapping>   
  78.   
  79.     <servlet-mapping>   
  80.         <servlet-name>FlexSwfServlet</servlet-name>   
  81.         <url-pattern>*.swf</url-pattern>   
  82.     </servlet-mapping>   
  83.   
  84.     <servlet-mapping>   
  85.         <servlet-name>FlexForbiddenServlet</servlet-name>   
  86.         <url-pattern>*.as</url-pattern>   
  87.     </servlet-mapping>   
  88.   
  89.     <servlet-mapping>   
  90.         <servlet-name>FlexForbiddenServlet</servlet-name>   
  91.         <url-pattern>*.swc</url-pattern>   
  92.     </servlet-mapping>   
  93.   
  94.     <servlet-mapping>   
  95.         <servlet-name>FlexInternalServlet</servlet-name>   
  96.         <url-pattern>/flex-internal/*</url-pattern>   
  97.     </servlet-mapping>   
  98.       
<listener>
        <listener-class>flex.messaging.HttpFlexSession</listener-class>
    </listener> 
    
    <!-- MessageBroker Servlet -->
    <servlet>
        <servlet-name>MessageBrokerServlet</servlet-name>
        <display-name>MessageBrokerServlet</display-name>
        <servlet-class>flex.messaging.MessageBrokerServlet</servlet-class>
        <init-param>
            <param-name>services.configuration.file</param-name>
            <param-value>/WEB-INF/flex/services-config.xml</param-value>
       </init-param>
        <init-param>
            <param-name>flex.write.path</param-name>
            <param-value>/WEB-INF/flex</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet>
        <servlet-name>FlexMxmlServlet</servlet-name>
        <display-name>MXML Processor</display-name>
        <description>Servlet wrapper for the Mxml Compiler</description>
        <servlet-class>flex.bootstrap.BootstrapServlet</servlet-class>
        <init-param>
            <param-name>servlet.class</param-name>
            <param-value>flex.webtier.server.j2ee.MxmlServlet</param-value>
        </init-param>
        <init-param>
            <param-name>webtier.configuration.file</param-name>
            <param-value>/WEB-INF/flex/flex-webtier-config.xml</param-value>
        </init-param>
       <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet>
        <servlet-name>FlexSwfServlet</servlet-name>
        <display-name>SWF Retriever</display-name>
        <servlet-class>flex.bootstrap.BootstrapServlet</servlet-class>
        <init-param>
            <param-name>servlet.class</param-name>
            <param-value>flex.webtier.server.j2ee.SwfServlet</param-value>
        </init-param>
        <!-- SwfServlet must be initialized after MxmlServlet -->
        <load-on-startup>2</load-on-startup>
    </servlet>

    <servlet>
        <servlet-name>FlexForbiddenServlet</servlet-name>
        <display-name>Prevents access to *.as/*.swc files</display-name>
        <servlet-class>flex.bootstrap.BootstrapServlet</servlet-class>
        <init-param>
            <param-name>servlet.class</param-name>
            <param-value>flex.webtier.server.j2ee.ForbiddenServlet</param-value>
        </init-param>
    </servlet>

    <servlet>
        <servlet-name>FlexInternalServlet</servlet-name>
        <servlet-class>flex.bootstrap.BootstrapServlet</servlet-class>
        <init-param>
            <param-name>servlet.class</param-name>
            <param-value>flex.webtier.server.j2ee.filemanager.FileManagerServlet</param-value>
        </init-param>
        <load-on-startup>10</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>MessageBrokerServlet</servlet-name>
        <url-pattern>/messagebroker/*</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
        <servlet-name>FlexMxmlServlet</servlet-name>
        <url-pattern>*.mxml</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
        <servlet-name>FlexSwfServlet</servlet-name>
        <url-pattern>*.swf</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
        <servlet-name>FlexForbiddenServlet</servlet-name>
        <url-pattern>*.as</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
        <servlet-name>FlexForbiddenServlet</servlet-name>
        <url-pattern>*.swc</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
        <servlet-name>FlexInternalServlet</servlet-name>
        <url-pattern>/flex-internal/*</url-pattern>
    </servlet-mapping>
    


    2、在spring的配置文件中增加:
   

Java代码 复制代码
  1. <bean id="topoMapViewService" parent="baseTransaction">   
  2.             <property name="target">   
  3.                     <bean   
  4.                             class="com.jeffrey.nms.service.impl.TopoServiceImpl"><!---这里的方法可以通过flex进行调用--->   
  5.                             <property name="topoMapDao" ref="topoMapDao" />   
  6.                             <property name="linkInfoDao" ref="linkInfoDao" />   
  7.                     </bean>   
  8.             </property>   
  9.     </bean>   
    <bean id="topoMapViewService" parent="baseTransaction">
                <property name="target">
                        <bean
                                class="com.jeffrey.nms.service.impl.TopoServiceImpl"><!---这里的方法可以通过flex进行调用--->
                                <property name="topoMapDao" ref="topoMapDao" />
                                <property name="linkInfoDao" ref="linkInfoDao" />
                        </bean>
                </property>
        </bean>
    


    3、然后需要配置flex的配置文件,flex文件下有个services-config.xml,
增加:
   

Java代码 复制代码
  1. <factories>   
  2.   <factory id="spring" class="com.jeffrey.nms.web.topo.SpringFactory"/>   
  3. </factories>   
    <factories>
      <factory id="spring" class="com.jeffrey.nms.web.topo.SpringFactory"/>
    </factories>
    


    其中类如下(通过网上查的)
    

Java代码 复制代码
  1.     package com.jeffrey.nms.web.topo;   
  2.   
  3. import org.springframework.context.ApplicationContext;   
  4. import org.springframework.web.context.support.WebApplicationContextUtils;   
  5. import org.springframework.beans.BeansException;   
  6. import org.springframework.beans.factory.NoSuchBeanDefinitionException;   
  7.   
  8. import flex.messaging.FactoryInstance;   
  9. import flex.messaging.FlexFactory;   
  10. import flex.messaging.config.ConfigMap;   
  11. import flex.messaging.services.ServiceException;   
  12.   
  13. public class SpringFactory implements FlexFactory   
  14. {   
  15.     private static final String SOURCE = "source";   
  16.   
  17.        
  18.     public void initialize(String id, ConfigMap configMap) {}   
  19.   
  20.       
  21.     public FactoryInstance createFactoryInstance(String id, ConfigMap properties)   
  22.     {   
  23.         SpringFactoryInstance instance = new SpringFactoryInstance(this, id, properties);   
  24.         instance.setSource(properties.getPropertyAsString(SOURCE, instance.getId()));   
  25.         return instance;   
  26.     } // end method createFactoryInstance()   
  27.   
  28.      
  29.     public Object lookup(FactoryInstance inst)   
  30.     {   
  31.         SpringFactoryInstance factoryInstance = (SpringFactoryInstance) inst;   
  32.         return factoryInstance.lookup();   
  33.     }    
  34.   
  35.   
  36.     static class SpringFactoryInstance extends FactoryInstance   
  37.     {   
  38.         SpringFactoryInstance(SpringFactory factory, String id, ConfigMap properties)   
  39.         {   
  40.             super(factory, id, properties);   
  41.         }   
  42.   
  43.   
  44.         public String toString()   
  45.         {   
  46.             return "SpringFactory instance for id=" + getId() + " source=" + getSource() + " scope=" + getScope();   
  47.         }   
  48.   
  49.         public Object lookup()    
  50.         {   
  51.             ApplicationContext appContext = WebApplicationContextUtils.getWebApplicationContext(flex.messaging.FlexContext.getServletConfig().getServletContext());   
  52.             String beanName = getSource();   
  53.   
  54.             try  
  55.             {   
  56.                 return appContext.getBean(beanName);   
  57.             }   
  58.             catch (NoSuchBeanDefinitionException nexc)   
  59.             {   
  60.                 ServiceException e = new ServiceException();   
  61.                 String msg = "Spring service named '" + beanName + "' does not exist.";   
  62.                 e.setMessage(msg);   
  63.                 e.setRootCause(nexc);   
  64.                 e.setDetails(msg);   
  65.                 e.setCode("Server.Processing");   
  66.                 throw e;   
  67.             }   
  68.             catch (BeansException bexc)   
  69.             {   
  70.                 ServiceException e = new ServiceException();   
  71.                 String msg = "Unable to create Spring service named '" + beanName + "' ";   
  72.                 e.setMessage(msg);   
  73.                 e.setRootCause(bexc);   
  74.                 e.setDetails(msg);   
  75.                 e.setCode("Server.Processing");   
  76.                 throw e;   
  77.             }    
  78.         }   
  79.            
  80.     }    
  81.   
  82. }    
  83.       
    package com.jeffrey.nms.web.topo;

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;
            } 
        }
        
    } 

} 
    


    4、本人做flex时是使用的直接调用java的运程类,以下都是按照这个配置的,还有一个webservice的方法,各位可以收集收集。
     在flex文件夹下有个remoting-config.xml文件,需要增加:
    

Java代码 复制代码
  1.  <destination id="topoMap">   
  2. <properties>   
  3.     <factory>spring</factory>   
  4.     <source>topoMapViewService</source>   
  5. </properties>   
  6. lt;/destination>   
     <destination id="topoMap">
    <properties>
        <factory>spring</factory>
        <source>topoMapViewService</source>
    </properties>
   </destination>
    


     这样topoMap可以在flex进行定义了,如下:
   <mx:RemoteObject id="topo" destination="topoMap">
   这样flex+spring配置即完成。

分享到:
评论

相关推荐

    flex+Spring+Hibernate整合配置详解

    Flex+Spring+Hibernate 整合是企业级应用开发中常见的一种技术栈组合,它结合了Flex前端的富互联网应用程序(RIA)开发能力、Spring框架的依赖注入和事务管理功能,以及Hibernate持久化框架的数据库操作便捷性。...

    Flex+spring+hibernate示例

    Flex+Spring+Hibernate示例是一种常见的企业级应用架构,它结合了Adobe Flex前端技术、Spring后端框架和Hibernate持久层框架,以构建高效、灵活且易于维护的Web应用程序。在这个示例中,开发者可能已经展示了如何...

    Flex+spring+mybatis架构搭建

    在Spring配置文件中引入Mapper扫描器,使Spring能够自动发现并管理Mapper。 5. **创建HTTP服务**:在Spring MVC中创建Controller,定义处理HTTP请求的方法,这些方法将调用Service层的业务逻辑。 6. **Flex与...

    flex+blazeds+spring

    3. **定义Spring服务**:在Spring配置文件中定义需要暴露给Flex的Bean,这些Bean通常是业务服务或DAO。例如,可以有一个名为`UserService`的Bean,提供用户管理功能。 4. **配置BlazeDS服务代理**:在Flex项目中,...

    PureMVC+Flex+BlazeDS+Spring+Hibernate.doc

    标题中的“PureMVC+Flex+BlazeDS+Spring+Hibernate.doc”指的是一项整合了多种技术的Web应用开发方案,这些技术包括PureMVC、Flex、BlazeDS、Spring和Hibernate。这篇文档可能是指导读者如何将这些技术结合在一起...

    hibernate+flex+spring 整合,hibernate+flex+spring 集成

    - **配置Spring**:首先,需要在Spring配置文件中定义数据源、SessionFactory(Hibernate的会话工厂)以及事务管理器。Spring能够管理和控制Hibernate的生命周期,简化了数据库操作。 - **配置Hibernate**:设置...

    Flex4+Spring+ibatis实战系列教程

    在 Flex 应用中,通常会通过 Spring 配置 iBATIS,创建 DAO(Data Access Object)层,实现与数据库的交互。 Cairngorm 和 pureMVC 是两种常用的 Flex 应用架构模式。Cairngorm 是一种轻量级的 MVC(Model-View-...

    flex+spring+struts2+ibatis 整合的eclipse工程

    flex+spring+struts2+ibatis 整合的eclipse工程,可以导入eclipse环境下直接使用,因为加入开发的jar大于了上传的最大限制,只能把jar另外打包上传,下载可以从我上传资源的lib1,lib2下载,这个工程的搭建花费了我两...

    Flex+Spring+Hibernate 环境

    在提供的压缩包文件"Flex+Spring+Hibernate Environment"中,可能包含了上述所有配置文件、源代码和部署资源。开发者可以通过直接部署运行,避免了从零开始搭建环境的繁琐过程。这个项目对于学习和理解Flex、Spring...

    flex+spring+blazeds在MyEclipse下非常详细的结合配置

    flex+spring+blazeds在MyEclipse下非常详细的结合配置

    flex+hibernate+Spring

    Flex、Hibernate 和 ...通过这些示例,你可以动手尝试配置和运行一个整合Flex、Hibernate和Spring的简单应用,进一步加深理解。在实际开发中,这种整合方式能够提供高性能、易维护的Web应用,满足复杂的业务需求。

    Myeclipse10搭建Flex+spring+mybatis架构

    - 在Spring配置文件中注册`EmployeeMapper`的Bean。 3. **更新Service实现**: - 修改`EmployeeServiceImpl`,使其能够通过MyBatis操作数据库。 ```java package com.sample.service.impl; import org.spring...

    flex+spring flex整合

    5. **整合过程**:接着,开发者需要在Spring配置文件中定义Bean,BlazeDS会自动暴露这些Bean为Flex客户端可调用的服务。在Flex客户端,通过使用AMF(Action Message Format)协议,可以调用这些服务并接收返回的数据...

    flex+bleazeds+spring+hibernate教程

    flex+bleazeds+spring+hibernate配置的教程,有详尽过程,是flex与spring结合的不错的教程

    Flex+ spring 2.5

    1. 配置Spring服务器端:创建Spring配置文件,定义服务接口及其实现,使用Spring的`@Service`注解标记服务类。 2. 配置AMF通道:在服务器端集成BlazeDS或LCDS,配置AMF通道,使得Flex可以与Spring服务进行AMF通信。 ...

    flex + spring 项目

    2. **Spring配置**:了解Spring的核心配置文件,如`applicationContext.xml`,用于定义Bean的实例化和依赖关系。 3. **Flex-Spring通信**:学习如何在Flex中使用 BlazeDS 或 GraniteDS 这样的中间件来与Spring服务...

    flex+spring+hibernate+mysql

    3. 配置remoting-config.xml文件,这是Flex与服务器通信的关键配置,通常会涉及到Spring中的bean定义。 4. 添加Spring框架,包括过滤器、事务管理配置,以及数据库连接池配置。 5. 创建数据源相关文件,比如在src...

    Flex+Spring+hibernate+mySql整合的一个登陆程序

    这个项目结合了前端的Flex(一种基于ActionScript和Flash的RIA开发框架)与后端的Spring(一个全面的Java应用框架)、Hibernate(一个对象关系映射框架)以及MySQL(一个流行的开源关系型数据库),实现了一个完整的...

    Flex+spring+hibernate

    2. **Spring配置**:在Spring中,需要配置服务代理(Service Proxy)以便Flex客户端可以调用。这些代理通常基于HTTPInvoker或RemotingDestination,使得Flex能够调用Spring Bean。 3. **数据访问对象(DAO)**:...

Global site tag (gtag.js) - Google Analytics