`
snoopy7713
  • 浏览: 1152174 次
  • 性别: Icon_minigender_2
  • 来自: 火星郊区
博客专栏
Group-logo
OSGi
浏览量:0
社区版块
存档分类
最新评论

OSGI整合FLEX

    博客分类:
  • OSGi
阅读更多
一、目标
1、可以将flex编译产生的*.swf、*.as、*.css、图片等资源文件按模块分开打包,最后将这些资源发布成web服务
2、可以将实现按模块分bundle
二、普通方式下的flex实现
此处,采用flex的amf协议
1、web.xml文件
从web.xml中的servlet可以看出,由flex.messaging.MessageBrokerServlet来处理amf协议请求,同时分别需要提供services-config.xml的配置文件及flex目录来读取诸如remoting-config.xml等配置文件
<servlet>
  <servlet-name>MessageBrokerServlet</servlet-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-mapping>
  <servlet-name>MessageBrokerServlet</servlet-name>
  <url-pattern>/messagebroker/*</url-pattern>
</servlet-mapping>
2、
三、osgi整合
1、发布servlet及资源
在Activator implements BundleActivator的start()方法中添加
下面相关的引用自己先搞定,可以参考后面会发布的一篇文章
待发:《使用org.osgi.service.http.HttpService发布web资源》

import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceReference;
import org.osgi.service.http.HttpService;
import flex.messaging.MessageBrokerServlet;

ServiceReference sr = context.getServiceReference(HttpService.class
    .getName()); 
  httpService = (HttpService) context.getService(sr);
  // 保存全局的资源发布对象
  Constant.httpService = httpService;
  // 原web.xml中的MessageBrokerServlet的初始化参数
  Dictionary<String, String> initparams = new Hashtable<String, String>();
  initparams.put("services.configuration.file",
    Constant.FLEX_PROJECT_CATALOG
      + Constant.SERVICES_CONFIGURATION_FILE);//设置找到路径即可
  initparams.put("flex.write.path", Constant.FLEX_PROJECT_CATALOG
    + Constant.FLEX_WRITE_PATH);
  initparams.put("load-on-startup", "1");
  // 发布MessageBrokerServlet
  httpService.registerServlet("/messagebroker",
    new MessageBrokerServlet(), initparams, null);

扩展org.eclipse.equinox.http.registry的扩展点发布资源


httpService.registerResources("/base", "net/oupu/drp/base/client/flex/webapp", null);

上面这段代码,将net/oupu/drp/base/client/flex/webapp发布为路径base的资源,如访问

http://ip:port/base/index.swf

即是访问net/oupu/drp/base/client/flex/webapp下的index.swf文件



2、在remoting-config.xml中添加对应的destination

<destination id="*Service">
  <properties>
   <source>you_package.*Service</source>
  </properties>
</destination>

you_package.*Service为提供方法的实现类



flex中通过endpoit,destination 的方式通过amf协议调用java类



3、动态扩展



部分代码设密,只说明一下思路



由于对于每一个service,都要去配置remoting-config.xml

所以,这里,我们可以只写一个destination,通过as文件来全局调用这一个

只需要将方法名,类全名,参数。传递过来

在you_package.*Service类中通过反射的方法来调用对应的类来处理或返回给flex前端

同时,为了as与java之间的传值比较方便,

可以在将as的object通过jasn转成java的object
分享到:
评论

相关推荐

    OSGI 整合 Flex 详细版,内容丰富

    OSGI 整合 Flex 原创, 介绍了Flex跟Java通讯。 Flex集成到OSGI插件里面, 怎么调试插件里面的Flex,非常详细。 我花了2天时间才写完。...Flex整合OSGI讲解材料,包含PPT,word版详尽使用手册和源代码。

    OSGI整合Spring、Mybatis、Spring MVC实现一个登录应用案例

    在这个案例中,我们将探讨如何整合OSGI、Spring、Mybatis以及Spring MVC来实现一个登录应用。这个教程旨在帮助开发者理解如何在OSGI环境中集成这些流行的Java技术,以构建灵活且可扩展的应用程序。 首先,我们需要...

    Spring与OSGI整合 计算器例子(转) +附整合代码和spring-osgi核心jar

    标题中的“Spring与OSGI整合 计算器例子(转) +附整合代码和spring-osgi核心jar”表明我们将探讨如何将Spring框架与OSGi(Open Services Gateway Initiative)模块化系统进行集成,并通过一个计算器的例子来说明这个...

    基于osgi整合ssm框架注解开发

    总结,"基于osgi整合ssm框架注解开发"的主题涵盖了使用OSGi的模块化特性来管理和部署基于Spring、SpringMVC和MyBatis的Web应用,同时利用注解简化配置和开发过程。通过这样的整合,开发者可以构建出高度可扩展、模块...

    spring-dm-osgi整合jar包

    标题“spring-dm-osgi整合jar包”和描述“spring-dm整合osgi所需所有jar包”提及的核心知识点是Spring Dynamic Modules(简称Spring DM)与OSGi(Open Service Gateway Initiative)框架的集成。这两个技术在Java...

    OSGI应用中整合Spring、Mybatis、Spring MVC案例

    在OSGI(Open Service Gateway Initiative)应用环境中,整合Spring、Mybatis和Spring MVC可以实现模块化、可热更新和高效的企业级应用开发。OSGI是一个Java框架,它允许动态地安装、卸载和升级服务,提供了强大的...

    OSGI入门和整合Spring

    将OSGI与Spring整合,可以充分利用两者的优点,构建更加灵活、可扩展且易于维护的系统。整合OSGI和Spring的主要目的是实现服务的动态发现和管理,以及在运行时动态装配和更新组件。 整合过程通常包括以下步骤: 1....

    osgi-ibatis

    标题 "osgi-ibatis" 暗示了这是一个关于如何在OSGi环境中集成iBatis的示例项目。iBatis是一个流行的SQL映射框架,它允许开发者将SQL语句直接嵌入到Java代码中,以实现数据访问层的操作。而OSGi(Open Service ...

    OSGi与Web容器的整合

    将OSGi与Web容器整合,可以实现更加灵活和模块化的Web应用开发和部署。 **1. OSGi Bundle放入Web容器中运行** 这是通过像Equinox的Servlet Bridge这样的技术实现的,它充当了一个桥梁,让OSGi Bundle可以在传统的...

    OSGI资料,OSGI进阶,OSGI实战,OSGI入门和整合Spring

    本资料集合涵盖了OSGI的入门、进阶以及实战应用,特别是与Spring框架的整合。 《OSGI进阶》着重介绍了OSGI的核心概念和技术细节,包括: 1. **模块系统**:OSGI基于JAR文件作为模块的基本单位,每个模块都有自己的...

    flex osgi实现-potomac 实现页面与页面间数据传递和页面间各部分的数据传递

    Flex OSGi实现,以Potomac框架为例,是一种在富互联网应用程序(RIA)中集成模块化和动态性的方式。OSGi(Open Service Gateway Initiative)是Java平台上的一个开源服务框架,它允许开发者创建可热插拔的模块化应用...

    RAP 整合 Spring (基于 Spring-osgi )

    标题 "RAP 整合 Spring(基于 Spring-osgi)" 暗示了本文将探讨如何在 RAP(Remote Application Platform)框架中集成 Spring 框架,并利用 Spring-osgi 进行服务管理和依赖注入。RAP 是一个用于构建富客户端应用...

    Enterprise OSGI in action

    在模块化编程方面,OSGi提供了一套规则来强化Java的模块化,这有助于解决传统企业级Java应用和OSGi整合不佳的问题。OSGi通过动态模块系统和包解析服务,使得Java应用可以更加灵活地按需加载和卸载模块,而不必重新...

    OSGI 入门资料PDF

    OSGI(Open Services Gateway Initiative)是一种开放标准,用于创建模块化和动态的Java应用程序。它为Java开发人员提供了一个框架...同时,了解OSGI与Spring的整合,可以帮助你在现代企业级应用开发中发挥更大的优势。

    tomcat嵌入OSGI容器

    2. **类加载器调整**:由于Tomcat和OSGI都有自己的类加载机制,整合时需要调整Tomcat的类加载策略,以兼容OSGI的模块化特性。这可能涉及创建一个新的类加载器,用于加载OSGI Bundle内的类。 3. **配置管理**:OSGI...

    读书笔记:OSGI 实战 整合Maven 测试代码 .zip

    读书笔记:OSGI 实战 整合Maven 测试代码

    OSGI 开发文档中文的

    OSGI(Open Services Gateway Initiative)是一种开放标准,用于创建可模块化的Java应用程序。它提供了一种灵活的框架,使得开发者可以构建、部署和管理模块化组件,这些组件被称为服务或bundle。OSGI的核心理念是将...

    OSGI 实例eclipse插件开发

    OSGI(Open Services Gateway Initiative)是一种模块化系统和Java服务框架,它允许应用程序由一系列可独立更新和替换的模块组成,这些模块称为“bundle”。在本实例中,我们将探讨如何利用OSGI技术来开发Eclipse...

Global site tag (gtag.js) - Google Analytics