




如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
OSGI OSGI(OpenServiceGatewayInitiative)技术 面象java的动态模型系统 OSGi规范的核心组件是OSGi框架 OSGi服务平台提供在多种网络设备上无需重启的动态改变构造的功能。 OSGI架构 运行环境:是java环境的规范 模块:定义类的装载策略 生命周期管理:增加了能够被动态安装、开启、关闭、更新和HYPERLINK"http://baike.baidu.com/view/386432.htm"\t"_blank"卸载的bundles 服务注册:提供了一个面向bundles的考虑到动态性的协作模型 Eclipse初识OSGi Eclipse->run->RunConfigurations->OSGiFramework 选中OSGiFramework,右键new,去掉所有勾选的bundles,然后通过查找关键字osgi找到并选中 然后点击Run,在控制台可以看到 输入:ss 表示环境已经正常 OSGiHelloWorld 在eclipse中创建一个Plug-in工程 也就是说建立一个标准的OSGibundle工程 输入bundle相关的元素信息 Plug-inID指的是Bundle的唯一标识,在实际项目中可以采用类似java的包名组织策略来保证标识的唯一性 Plug-inVersion指的是Bundle的版本 Plug-inName指的是Bundle的更具有意义的名称 Plug-inProvider指的是Bundle的提供商 剩下最关键的就是Activator部分了,这里填入自己的一个类名就可以了,在工程建立时eclipse会自动建立这个类 打开自动生成的代码,可以看到此类中有两个方法start和stop;其中start方法是在Bundle被启动的时候调用的,stop是在Bundle被停止的时候调用的 然后分别在这两个方法中各输入一句话 运行 RunConfiguration,选中当前工程和最初选择的OSGI的jar包,将其它所有不需要的bundle去掉 设置当前工程的Auto-Start属性为false 最后点击Run,在Console中出现“osgi>”,表示我们已经成功启动了第一个OSGi应用 在osgi>提示符下输入ss,然后回车,可以看到如下图 此时我们的自己开发的bundle已经被安装并完成了解析,但是没有启动,接下来输入start1(其中1代表ss查看到的id),我们会看到”HelloWorldBundlestarted!”被输出了,通过ss可以看到HelloWorld_1.0.0的state变为Active,说明已成功启动 然后输入stop1,同样能够输出“HelloWorldBundlestopped!”,同时再用ss查看,HelloWorld_1.0.0的state又变回RESOLVED. OSGI的Bundle中内嵌使用http服务 首先看看在OSGi中怎么使用内嵌的jetty容器 RunConfiguration中只选中“org.eclipse.osgi”和“org.eclipse.equinox.http.jetty”,然后点击"AddRequiredBundles"即可 默认的Jetty监听的端口为80,可又通过指定运行参数org.osgi.service.http.port来修改围住端口,例如要想使用8080端口,可又切换到"Arguments"页(不修改也可以): 启动浏览器,输入:HYPERLINK"http://localhost"http://localhost或者HYPERLINK"http://localhost:8080"http://localhost:8080看到如下界面表示运行成功 创建一个简单的osgi的bundle,由于要结合http服务,需要添加依赖包:找到MANIFEST.MF,切换到Dependencies页面,在ImportedPackages里添加如下三个包 javax.servlet javax.servlet.http org.osgi.service.http eclipse有一个内嵌的HttpService的实现,它位于包“org.osgi.service.http”下,一旦这个service所在的osgibundle启动了,就会有一个内嵌的http容器被启动,这个service就会被注册。默认地址为:HYPERLINK"http://localhost"http://localhost,端口为80,可以通过指定参数“org.osgi.service.http.port”参数在运行的时候修改默认端口。 想要提供我们自己定义的http服务,就需要将我们的服务(servlet或其它

xf****65
实名认证
内容提供者


最近下载