http://blog.sina.com.cn/s/blog_50af6d3801009pms.html
本文内容我没有验证过,仅仅是转过来,备用
一、目标
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 原创, 介绍了Flex跟Java通讯。 Flex集成到OSGI插件里面, 怎么调试插件里面的Flex,非常详细。 我花了2天时间才写完。...Flex整合OSGI讲解材料,包含PPT,word版详尽使用手册和源代码。
在这个案例中,我们将探讨如何整合OSGI、Spring、Mybatis以及Spring MVC来实现一个登录应用。这个教程旨在帮助开发者理解如何在OSGI环境中集成这些流行的Java技术,以构建灵活且可扩展的应用程序。 首先,我们需要...
标题中的“Spring与OSGI整合 计算器例子(转) +附整合代码和spring-osgi核心jar”表明我们将探讨如何将Spring框架与OSGi(Open Services Gateway Initiative)模块化系统进行集成,并通过一个计算器的例子来说明这个...
总结,"基于osgi整合ssm框架注解开发"的主题涵盖了使用OSGi的模块化特性来管理和部署基于Spring、SpringMVC和MyBatis的Web应用,同时利用注解简化配置和开发过程。通过这样的整合,开发者可以构建出高度可扩展、模块...
标题“spring-dm-osgi整合jar包”和描述“spring-dm整合osgi所需所有jar包”提及的核心知识点是Spring Dynamic Modules(简称Spring DM)与OSGi(Open Service Gateway Initiative)框架的集成。这两个技术在Java...
将OSGI与Spring整合,可以充分利用两者的优点,构建更加灵活、可扩展且易于维护的系统。整合OSGI和Spring的主要目的是实现服务的动态发现和管理,以及在运行时动态装配和更新组件。 整合过程通常包括以下步骤: 1....
标题 "osgi-ibatis" 暗示了这是一个关于如何在OSGi环境中集成iBatis的示例项目。iBatis是一个流行的SQL映射框架,它允许开发者将SQL语句直接嵌入到Java代码中,以实现数据访问层的操作。而OSGi(Open Service ...
将OSGi与Web容器整合,可以实现更加灵活和模块化的Web应用开发和部署。 **1. OSGi Bundle放入Web容器中运行** 这是通过像Equinox的Servlet Bridge这样的技术实现的,它充当了一个桥梁,让OSGi Bundle可以在传统的...
在OSGI(Open Service Gateway Initiative)应用环境中,整合Spring、Mybatis和Spring MVC可以实现模块化、可热更新和高效的企业级应用开发。OSGI是一个Java框架,它允许动态地安装、卸载和升级服务,提供了强大的...
本资料集合涵盖了OSGI的入门、进阶以及实战应用,特别是与Spring框架的整合。 《OSGI进阶》着重介绍了OSGI的核心概念和技术细节,包括: 1. **模块系统**:OSGI基于JAR文件作为模块的基本单位,每个模块都有自己的...
Flex OSGi实现,以Potomac框架为例,是一种在富互联网应用程序(RIA)中集成模块化和动态性的方式。OSGi(Open Service Gateway Initiative)是Java平台上的一个开源服务框架,它允许开发者创建可热插拔的模块化应用...
标题 "RAP 整合 Spring(基于 Spring-osgi)" 暗示了本文将探讨如何在 RAP(Remote Application Platform)框架中集成 Spring 框架,并利用 Spring-osgi 进行服务管理和依赖注入。RAP 是一个用于构建富客户端应用...
在模块化编程方面,OSGi提供了一套规则来强化Java的模块化,这有助于解决传统企业级Java应用和OSGi整合不佳的问题。OSGi通过动态模块系统和包解析服务,使得Java应用可以更加灵活地按需加载和卸载模块,而不必重新...
OSGI(Open Services Gateway Initiative)是一种开放标准,用于创建模块化和动态的Java应用程序。它为Java开发人员提供了一个框架...同时,了解OSGI与Spring的整合,可以帮助你在现代企业级应用开发中发挥更大的优势。
2. **类加载器调整**:由于Tomcat和OSGI都有自己的类加载机制,整合时需要调整Tomcat的类加载策略,以兼容OSGI的模块化特性。这可能涉及创建一个新的类加载器,用于加载OSGI Bundle内的类。 3. **配置管理**:OSGI...
读书笔记:OSGI 实战 整合Maven 测试代码
OSGI(Open Services Gateway Initiative)是一种开放标准,用于创建可模块化的Java应用程序。它提供了一种灵活的框架,使得开发者可以构建、部署和管理模块化组件,这些组件被称为服务或bundle。OSGI的核心理念是将...
OSGI(Open Services Gateway Initiative)是一种模块化系统和Java服务框架,它允许应用程序由一系列可独立更新和替换的模块组成,这些模块称为“bundle”。在本实例中,我们将探讨如何利用OSGI技术来开发Eclipse...