`

基于OSGi的Virgo环境搭建(二)——集成Snaps

    博客分类:
  • osgi
 
阅读更多

上一篇我们介绍了用java开发模块化web所需最基本环境(STS+Virgo),本节将介绍如何集成Snaps到Virgo中并演示几个官方的小Demo。

1.预备知识

Snaps是什么?

可以参考http://osgi.com.cn/article/7289354

2.集成Snaps

首先,我们进入http://www.eclipse.org/virgo/download/,下载Virgo Snaps。

下载并解压,目录结构如下:

下面我们将Snaps System 集成到 Virgo Tomcat Server中。

步骤一:

dist目录中存放的是snaps相关jar包,我们将该目录下的所有内容拷贝到${SERVERHOME}/repository/usr(${SERVERHOME}是指你本机安装的virgo server的根路径,譬如F:\virgo-tomcat-server-3.6.2.RELEASE\repository\usr)以及${SERVER_HOME}/repository/ext目录下。

步骤二:

修改文件${SERVER_HOME}/configuration/org.eclipse.virgo.kernel.userregion.properties,在该文件末尾追加repository:plan/org.eclipse.virgo.snaps(即在initialArtifacts的右边赋值),使virgo server 在启动时能加载我们集成的snaps相关功能。

步骤三:

检查我们集成的snaps功能是否生效,在STS中启动我们的Virgo Server。在控制台检查输出信息,如果配置安装正确,则会打印出如下图所示信息。

成功集成Snaps之后,接下来我们将官方提供的Demo部署到Virgo Server上面。

我们在STS IDE中启动Virgo Server,打开浏览器输入http://localhost:8080/ 进入管理页面。

点击Artifacts选项卡,进入部署页面。

添加sample文件夹下的jar包,之后点击Deploy。

点击Deploy之后,部署结果弹出,为什么会产生错误?仔细观察,不难发现是bundle版本出现问题。

注意:产生这个问题的原因是Virgo Snaps官方demo jar文件未及时修改更新版本所致。

如何解决这个问题?

以修改org.eclipse.virgo.snaps.sample.animal-3.6.2.RELEASE.jar为例。

用rar软件打开jar包,打开META-INF目录,修改MANIFEST.MF文件,将3.1修改为4,然后保存修改。

修改完毕后,重新部署一下这org.eclipse.virgo.snaps.sample.animal-3.6.2.RELEASE.jar。

此时弹出正确部署的结果。

其他jar包修改方法类似,此处略。

成功部署我们的host-bundle之后,STS控制台会输出 Host created for path '/animal-menu-bar'

这表明host已经加载并安装到我们的Virgo Snaps容器中,此时打开浏览器,访问http://localhost:8080/animal-menu-bar/看看效果吧。

OK,接下来我们依次将剩下的3个jar部署到Virgo Snaps容器中。

部署方法同animal,此处略过,直接上效果图。

部署Dog成功后,控制台输出 Snap bound to path '/animal-menu-bar/dog' 接下来刷新http://localhost:8080/animal-menu-bar/页面。

发现此时多了Dog这个链接。

点击Dog链接,会看到一个十分可爱的DOG。

3.总结

通过官方Demo可以看出,animal是host,而dog、blue、cat都是snap,即snap是attach(依附)在host上面的。snap不能单独运行,必须依赖于某一个唯一的host。我们可以将dog、blue、cat等jar视为我们开发的新模块,在部署新的模块时,不需要重启Server,就像例子展示的那样,动态的在Virgo Server管理页面上安装部署jar,实现热插拔及动态部署的功能。这一点相对于传统方式有很大的灵活性以及扩展性,不用担心因服务器端程序版本升级或添加新模块而停掉Server,已减少Server停机带来的影响及损失。

 

转载自:http://osgi.com.cn/article/7289515

分享到:
评论

相关推荐

    基于VirgoServer进行Spring Osgi Web开发

    在本文中,我们将深入探讨如何基于VirgoServer进行Spring Osgi Web开发,这是一个涉及OSGi容器、Spring框架和Web应用程序的集成技术。首先,我们需要确保拥有正确的开发环境和工具,包括Spring Tool Suite (STS),...

    WebSphere基于OSGi的应用部署和SCA集成.doc

    【WebSphere基于OSGi的应用部署和SCA集成】 WebSphere应用服务器V7引入了对OSGi(开放服务网关倡议)应用程序和Java持久化API 2.0的支持,这两个技术的结合提供了更灵活和模块化的部署方案。OSGi Blueprint ...

    基于OSGi和Spring开发Web应用.doc

    "基于OSGi和Spring开发Web应用" OSGi(Open Service Gateway Initiative)是一种面向服务的框架,能够提供动态模块部署和管理的能力。Spring 是一个轻量级的J2EE开发框架,特点是面向接口编程和非侵入式的依赖注入...

    osgi进阶——11111

    在分布式系统搭建方面,文档提供了基于OSGi的分布式系统搭建的实例需求和脚手架搭建步骤,以及如何实现该实例。 对于那些希望将原有系统重构为基于OSGi的系统,文档也给出了指导和小结。文档重点强调了重构过程中...

    基于virgo环境的OSGI+Maven的web开发代码下载(spring+hibernate+GWT)

    标题中的“基于virgo环境的OSGI+Maven的web开发代码下载”表明这是一个使用OSGi(模块化Java系统)和Maven构建的Web应用程序项目,运行在Virgo服务器上。Virgo是SpringSource推出的一个OSGi应用服务器,它支持Spring...

    OSGi开发环境建立和Hello World

    文章《OSGi开发环境建立和Hello World》详细介绍了如何搭建OSGi开发环境,并通过Hello World程序的开发实践来巩固前面入门篇的内容。 首先,需要了解Equinox是OSGi核心标准的一个完整实现,并且添加了一些额外的...

    virgo编程手册.pdf

    - **定义与特性**:Virgo Web Server(VWS)是基于OSGi规范构建的,旨在提供一个高性能、高可用性的应用容器。它支持多种部署格式,如PAR(Package Application Repository)、WAR(Web Application Archive)以及...

    基于OSGi和Spring开发Web应用的Demo

    在OSGi环境中,这个服务可以作为一个单独的模块发布,供其他组件调用。Spring框架可以帮助我们管理这个服务的生命周期,通过接口定义服务契约,确保其与调用方解耦。 2. `com.zxn.example.service.compute`:这个...

    基于osgi构建小例子

    **基于OSGi构建小例子** OSGi(Open Service Gateway Initiative)是一种Java模块化系统,它允许开发者将应用程序拆分成独立的、可管理的模块,这些模块可以动态地安装、卸载和更新,而不影响系统的其他部分。在...

    基于 OSGI 的 RCP 测试 1 Equinox

    "基于 OSGi 的 RCP 测试" 标签明确了这个项目的核心内容是测试 OSGi 与 RCP 结合的工作方式,主要关注点在于如何在 OSGi 环境下构建和测试客户端应用程序。 **文件名解析:** "osgi_component_test" 这个文件名...

    基于VirgoServer进行Spring Osgi Web开发(示例代码)

    本示例代码将指导开发者如何利用VirgoServer进行基于Spring OSGi的Web开发。 首先,我们来看"Sample"项目,这通常是整个应用的基础模块,包含了一些通用的服务和组件。在Spring OSGi中,每个服务或组件都被封装成一...

    基于 OSGI 的 RCP 测试 2 Standard

    标题和描述中提到的“基于OSGI的RCP测试 2 Standard”指的是使用OSGi(Open Service Gateway Initiative)框架进行Rich Client Platform(RCP)应用程序的第二阶段标准化测试。OSGi是一种Java模块化系统,用于创建可...

    基于OSGi和Spring开发Web应用教程

    在基于OSGi和Spring开发Web应用中,OSGi(Open Services Gateway Initiative)是一个开放标准,用于创建模块化Java应用程序。它允许开发者将应用程序分解为独立的模块,称为bundle,每个bundle都包含自己的类路径、...

    基于OSGi的轻量级动态化系统研究

    ### 基于OSGi的轻量级动态化系统研究 #### 1. OSGi服务平台概述 OSGi(Open Service Gateway Initiative)是一种模块化框架,它为Java平台上的应用程序提供了一个灵活、可扩展的环境。OSGi的核心价值在于它的模块...

    基于osgi框架实战源码

    3. **动态性**:OSGi环境中,bundle可以在运行时动态地安装、启动、停止、更新和卸载,这对于软件维护和升级非常便利。 4. **版本管理**:OSGi支持多个版本的包共存,避免了版本冲突问题。 5. **安全控制**:OSGi...

    基于OSGI的软构件实时数据处理子系统设计与实现.pdf

    【基于OSGI的软构件实时数据处理子系统设计与实现】 在现代军事装备的发展中,指控系统扮演着至关重要的角色,特别是在信息化趋势下。指控系统主要用于处理试验信息、执行信息应用以及管理试验信息系统的运行。它能...

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

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

Global site tag (gtag.js) - Google Analytics