OSGI的技术渐渐被采用到互联网应用的开发中.这里不讨论OSGI,即我们熟悉的Equinox,Felix是如何进.Java Web应用开发,这里讨论的是一个目前看来较新的方案——Eclipse Virgo.
Eclipse Virgo对OSGI进行了再次封装,底层使用的是Equinox.有朋友知道,其实Eclipse Virgo的OSGI部分是Spring-DM.没错,Virgo最早由Spring开发,Spring对tomcat进行了扩展,使该容器成了一个集OSGI容器,Web容器于一体的OSGI-Web应用服务器.后来捐献给了Eclipse,改名为Eclipse Virgo.
今天我在这里介绍一下,如何在我们的Web开发中加入OSGI的能力,使我们的应用变的模块化,并且具有动态性.
首先,还是来看如何搭建我们的开发环境.我们这里会使用到Virgo,Maven.假设看这篇介绍的朋友已经熟悉Maven,因为我们的重点不在Maven,所以略过。我们重点介绍Virgo如何配置,如何与Maven集成。
一、Virgo-tomcat-server 3.5.0-RELEASE
1.安装
下载地址:http://www.eclipse.org/downloads/download.php?file=/virgo/release/VTS/3.5.0.RELEASE/virgo-tomcat-server-3.5.0.RELEASE.zip
2.关联Maven
修改${virgo_home}/configuration/org.eclipse.virgo.repository.properties,增加本地maven仓库位置
ext.type=external ext.searchPattern=repository/ext/{artifact} usr.type=watched usr.watchDirectory=repository/usr mvn.type=external mvn.searchPattern=${user.home}/.m2/repository/**/{bundle}.jar chain=ext,usr,mvn
Virgo的启动加载顺序是:plugins,repository/ext,repository/usr,mvn。注意,我们这里说的是开发环境,所以需要配置maven。如果是线网环境,是没有maven的。那么只需要将所有bundle及依赖的第三方bundle放到repository/usr/即可。
3.打开userregion osgi控制台
修改${virgo_home}/repository/ext/osgi.console.properties.打开userregion控制台
telnet.enabled=true telnet.port=2501 telnet.host=localhost ssh.enabled=true ssh.port=2502 ssh.host=localhost
可以通过 ssh admin@localhost -p 2502 登录osgi控制台
默认密码:springsources
windows下使用 telnet localhost 2501 登录osgi控制台
4.给virgo添加snaps支持
介绍一下snaps。Virgo对OSGI的WAB(web application bundle)规范做了支持,一个应用是由很多bundle组成的,但是有一个bundle是host,这个host里面要配置应用总的上下文假设:demo。其他web模块的bundle,假设有一个模块是用户管理user,还有一个是role。那么我们最终的请求路径就是http://localhost:8080/demo/user/xxx.html或者http://localhost:8080/demo/role/xxx.html。这就是Host-Snap概念。一个OSGI-Web应用,有一个host,另外按模块分有N个Snap。这里我们要用到Virgo的snaps支持,让它优先加载,作为userregion的能力给我们提供服务。
在${virgo_home}/repository/ext/下创建文件org.eclipse.virgo.snaps.plan,内容:
<plan name="org.eclipse.virgo.snaps" version="3.0.0" scoped="false" atomic="true" xmlns="http://www.springsource.org/schema/dm-server/plan" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springsource.org/schema/dm-server/plan http://www.springsource.org/schema/dm-server/plan/springsource-dm-server-plan.xsd"> <artifact type="bundle" name="org.eclipse.virgo.snaps.api" version="[3, 4)"/> <artifact type="bundle" name="org.eclipse.virgo.snaps.core" version="[3, 4)"/> </plan>
修改${virgo_home}/configuration/org.eclipse.virgo.kernel.userregion.properties文件,在文件末尾添加:
initialArtifacts=repository:plan/org.eclipse.virgo.kernel.userregion.springdm, repository:plan/org.eclipse.virgo.web.tomcat, repository:plan/org.eclipse.virgo.snaps
5.启动
我们使用的是Virgo3.5.0,它使用的spring版本是3.0.5.RELEASE。所以,确保mvn本地仓库中没有spring的其他版本,只存在3.0.5.RELEASE版本。否则会包冲突,导致virgo无法启动。
调试状态启动:./startup.sh -clean -debug
启动成功后,访问http://localhost:8080/admin查看osgi环境及bundle部署情况
用户名/密码:admin/springsource
相关推荐
标题中的“基于virgo环境的OSGI+Maven的web开发代码下载”表明这是一个使用OSGi(模块化Java系统)和Maven构建的Web应用程序项目,运行在Virgo服务器上。Virgo是SpringSource推出的一个OSGi应用服务器,它支持Spring...
基于VirgoServer进行Spring Osgi Web开发需要配置VirgoServer开发环境,使用Maven和Eclipse Virgo Tools,创建Bundle Project,并配置Spring配置文件。同时,需要实现Servlet类,用于处理请求,并配置classpath和...
Virgo Server与Maven的集成是其另一个关键特点。Maven是Java项目管理和构建工具,它通过依赖管理和项目信息管理来简化项目的构建、报告和文档生成过程。在Virgo Server中,开发者可以利用Maven的生命周期和插件机制...
首先,我们需要确保拥有正确的开发环境和工具,包括Spring Tool Suite (STS),Maven插件,以及Eclipse Virgo Tools插件。 **一、开发工具** 1. **Spring Tool Suite (STS)**: 这是一个基于Eclipse的集成开发环境,...
通过以上步骤,我们不仅构建了一个基于VirgoServer的Spring OSGi Web开发环境,还完成了两个具体项目的搭建和配置。这种方式充分利用了Spring框架的优势以及OSGi的模块化特性,有助于构建灵活、可扩展的应用程序。
- **集成开发环境(IDE)集成**:Virgo与Eclipse等主流IDE的深度集成,使得开发者可以轻松地进行调试、测试和部署。手册提供了详细的步骤指导,帮助用户快速上手。 - **库和库供应**:Virgo支持通过各种渠道自动...
Virgo是SpringSource公司开发的一款基于OSGi技术的开源企业级服务器,主要用于构建模块化、可扩展的应用系统。Virgo提供了强大的服务管理和部署环境,它支持Spring应用和服务的动态部署和管理,使得开发者能够轻松地...
Virgo,全称为OSGi Enterprise Platform,是SpringSource推出的一款基于OSGi规范的应用服务器,旨在为开发和部署企业级应用程序提供一个模块化、可扩展的平台。而Hibernate,则是一款流行的Java ORM(对象关系映射)...
【最新virgo-jetty-server】是一款专为Jetty设计的Virgo服务器,它提供了一种高效、可扩展的运行环境,使得基于Java技术的应用能够快速部署和管理。Virgo服务器是SpringSource公司(现已被VMware收购)开发的一款轻...
总的来说,Virgo是Windows用户提升任务管理效率的一款实用工具,通过快捷键和任务组织功能,帮助用户在多任务环境中游刃有余。对于那些频繁在多个窗口间切换的用户来说,Virgo无疑是一个值得尝试的解决方案。
Maven 插件,它根据项目直接依赖(忽略瞬态依赖)生成 Virgo 计划 XML。 示例配置: 使用“计划”项目打包 <groupId>group <artifactId>artifact <version>0.0.1-SNAPSHOT <packaging>plan <groupId>...
"Virgo Web Server" 是一个基于Java平台的轻量级应用服务器,主要由SpringSource团队开发,后来成为VMware(现为Dell Technologies的一部分)的一部分。这个服务器是为运行Spring框架的应用程序而设计的,特别关注高...
"Virgo-Bin" 包,正如其名,是一个与Virgo相关的二进制软件包。Virgo项目,源自SpringSource,是企业级Java应用程序的一个关键组成部分,特别是对于那些依赖于OSGi(开放服务网关规范)进行模块化系统开发的项目来说...
Virgo是由SpringSource公司开发的轻量级应用服务器,它基于OSGi(开放服务网关规范)框架,提供了一个模块化的运行环境,允许开发者将应用程序拆分成可独立更新的模块。Virgo的灵活性和模块化设计使其成为SOA环境下...
这个版本包含了Virgo服务器的核心组件,可能包括了配置文件、管理工具、OSGi运行时环境以及与Tomcat的集成模块。用户可以通过解压这个文件,然后按照官方文档的指引在本地环境中安装和配置Virgo服务器,以便在Apache...
在IT行业中,Spring OSGi(Open Service Gateway Initiative)是一种模块化开发的框架,它将Spring框架与OSGi服务架构相结合,为Web应用程序提供了一种更灵活、可扩展的开发方式。VirgoServer是Pivotal公司推出的一...