1.背景
最近要将web项目模块化以支持热插拔、动态扩展等功能,因此我们开始研究如何将OSGi引入web项目。关于OSGi,大家可以参考OSGi研究与总结。现在主流的j2EE框架都离不开Spring,因此,将OSGi与Spring进行无缝整合就成为了引入OSGi的关键。值得庆幸的是,Spring早在08年就已对OSGi进行大力支持,并开发了子项目SpringDM与OSGi进行完美融合。但是,自从3.2版本之后,为了Gradle,Spring摒弃OSGi(关于为什么摒弃OSGi,大家可以参考http://www.infoq.com/news/2012/10/spring-osgi-gradle),关于OSGi在J2EE中的应用,大家也有些争论,可谓是仁者见仁智者见智,说到底,还是对OSGi研究的不够深入,导致OSGi在项目中发挥不出关键作用以致成为累赘。
总之,没尝试过OSGi的人是没有发言权的,基于这样的背景,下面我们就来构建Spring Tools Suite(STS)+ Virgo 的开发环境,为我们接下来深入研究OSGi在Web项目中的应用打下坚实基础。
2.预备知识
在开始之前,先简单介绍一下涉及到的名词概念,了解OSGi以及Virgo的同学可以直接无视。
什么是OSGi?
简单的说,它是一套规范及标准,支持java语言模块化的系统。我们常用的Eclipse就是基于OSGi标准开发的。详情介绍http://developer.51cto.com/art/200909/152190.htm)
什么是STS?
基于Eclipse的一套IDE开发工具,简单说,就是Eclipse + STS插件。
什么是Virgo Tomcat Server?
就是将Tomcat进行包装,集成了OSGi环境的Server。详细介绍 http://www.ha97.com/5152.html。
什么是Maven?
这个就不多说了,google一下就清楚了。
3.环境搭建
好,我们正式开始搭建过程。
3.1步骤一:
下载STS开发环境,地址http://spring.io/tools/sts/all,只能下载最新版本,分为绿色解压版及安装版,下载解压版即可。当然,如果你也可以下载Spring Tool Suite的插件直接安装到你的Eclipse环境中,该插件大概有130M左右。
3.2步骤二:
下载Virgo Server,地址http://www.eclipse.org/virgo/download/,我们采用的是基于tomcat的。
3.3步骤三:
配置Virgo Server。
我们需要将下载的Virgo Server集成到STS环境中,首先,在STS IDE中安装virgo tools插件,通过Help->Install New Software,弹出如下界面。
在STS IDE中安装virgo tools,通过Help->Install New Software,弹出如下界面。
点击Add,输入
Name:virgo
Location:http://download.eclipse.org/virgo/milestone/tooling
勾选Eclipse Virgo Tools插件,然后Next进行下载及安装。
安装完成后重启STS。
然后,配置Server,也就是我们使用的virgo应用服务器。
点击Add,在弹出的配置界面中选择EclipseRT下面的Virgo Runtime。
选择EclipseRT下面的Virgo Runtime并勾选create a new local server。
注意:EclipseRT选项只有在virgo tools插件安装成功之后才会有。
填写Virgo Server的Name,点击Browser选择下载的Virgo Server的路径。
完成后,在Server视图中可以看到我们创建的VirgoServer,下面的VmwarevFabric tc Server是这个版本的STS环境自带的,不用管。
3.4步骤四:
配置Maven。(如果不清楚Maven是什么的同学可以去Google一下,此处是Maven下载的地址http://maven.apache.org/download.cgi)
重启之后选择windows->preferences->Maven对maven进行配置。
建议不要使用Embedded内嵌的Maven,《Maven实战》上说不太稳定,详见《Maven实战》第47页2.7.3。
最后,让我们测试一下搭建的环境,在STS中启动Virgo Server。
可以看到virgo
启动后就是加载各个osgi的插件
打开浏览器,输入http://localhost:8080/
得到默认的启动页面如下
点击右上角的Admin Console
输入用户名和密码:分别是admin、springsource
进行管理页面
好啦,大功告成,我们的STS+Virgo初步的环境就搭建好了,下一节我们将介绍如何将Snaps集成到Virgo Server上,并演示几个官方的小demo。
转载自:http://osgi.com.cn/article/7289514
相关推荐
在本文中,我们将深入探讨如何基于VirgoServer进行Spring Osgi Web开发,这是一个涉及OSGi容器、Spring框架和Web应用程序的集成技术。首先,我们需要确保拥有正确的开发环境和工具,包括Spring Tool Suite (STS),...
dm Server 是一个完全模块化部署的基于 OSGi 的 Java 服务器,为运行企业 Java 应用和 Spring 应用提供更加强大的灵活性和可靠性。 在本文中,我们将通过一个简单实例,介绍如何利用 Spring-DM 开发基于 OSGi 和 ...
标题中的“基于virgo环境的OSGI+Maven的web开发代码下载”表明这是一个使用OSGi(模块化Java系统)和Maven构建的Web应用程序项目,运行在Virgo服务器上。Virgo是SpringSource推出的一个OSGi应用服务器,它支持Spring...
文章《OSGi开发环境建立和Hello World》详细介绍了如何搭建OSGi开发环境,并通过Hello World程序的开发实践来巩固前面入门篇的内容。 首先,需要了解Equinox是OSGi核心标准的一个完整实现,并且添加了一些额外的...
本篇文档《OSGi进阶——11111》由BlueDavy编写,适合已经具备一定OSGi基础概念或者已经阅读过《OSGi实战》的读者,特别适用于希望将OSGi技术应用于商业项目或产品的开发者。 文档中提到,为了搭建OSGi运行环境,...
- **定义与特性**:Virgo Web Server(VWS)是基于OSGi规范构建的,旨在提供一个高性能、高可用性的应用容器。它支持多种部署格式,如PAR(Package Application Repository)、WAR(Web Application Archive)以及...
Eclipse是一个流行的开源IDE,其本身便基于OSGi框架构建,因此非常适合用来学习和实践OSGi技术。通过这个例子,你可以了解到如何在实际项目中设置和运行一个简单的OSGi应用。 1. **创建OSGi Bundle** 在OSGi中,...
VirgoServer是Pivotal公司推出的一个开源OSGi应用服务器,特别适合于Spring OSGi应用的部署和管理。本示例代码将指导开发者如何利用VirgoServer进行基于Spring OSGi的Web开发。 首先,我们来看"Sample"项目,这通常...
在基于OSGi和Spring开发Web应用中,OSGi(Open Services Gateway Initiative)是一个开放标准,用于创建模块化Java应用程序。它允许开发者将应用程序分解为独立的模块,称为bundle,每个bundle都包含自己的类路径、...
"基于 OSGi 的 RCP 测试" 标签明确了这个项目的核心内容是测试 OSGi 与 RCP 结合的工作方式,主要关注点在于如何在 OSGi 环境下构建和测试客户端应用程序。 **文件名解析:** "osgi_component_test" 这个文件名...
dmServer,全称为Dynamic Modules Server,是一个完全模块化的Java服务器,其基于OSGi,专为运行企业级Java应用和Spring应用而设计。dmServer的模块化特性使得它能够提供更加灵活和可靠的部署环境,对于那些需要频繁...
标题和描述中提到的“基于OSGI的RCP测试 2 Standard”指的是使用OSGi(Open Service Gateway Initiative)框架进行Rich Client Platform(RCP)应用程序的第二阶段标准化测试。OSGi是一种Java模块化系统,用于创建可...
OSGi(Open Service Gateway Initiative)是一种模块化框架,它为Java平台上的应用程序提供了一个灵活、可扩展的环境。OSGi的核心价值在于它的模块化特性,这使得开发者能够轻松地构建出能够随着需求变化而进行扩展...
"基于osgi框架实战源码"的学习资料为开发者提供了一个宝贵的实践平台,通过实际操作可以加深对OSGi的理解,提升在大型复杂系统中的模块化开发能力。在深入学习源码的过程中,不仅要关注代码逻辑,还要理解其背后的...
【基于OSGI的软构件实时数据处理子系统设计与实现】 在现代军事装备的发展中,指控系统扮演着至关重要的角色,特别是在信息化趋势下。指控系统主要用于处理试验信息、执行信息应用以及管理试验信息系统的运行。它能...
在这个“osgi基础demo-搭建servlet”项目中,我们将探讨如何在OSGi环境中创建并运行一个简单的Servlet应用程序。 首先,我们需要理解OSGi的核心概念。OSGi基于服务导向架构,每个模块称为一个Bundle,每个Bundle...
本篇将详细探讨如何基于OSGi和Spring来开发Web应用,并通过提供的代码示例进行解析。 首先,OSGi是一种模块化系统,它允许Java应用程序以组件的形式进行组织和管理。这种模块化特性使得开发者可以独立地更新、替换...