您的位置:首页 > 编程语言 > Go语言

Virgo与Maven整合开发环境搭建(一)

2014-05-05 11:26 316 查看
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仓库位置

Properties代码


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控制台

Properties代码


telnet.enabled=<span style="color: #ff0000;">true</span>

telnet.port=2501

telnet.host=localhost

ssh.enabled=<span style="color: #ff0000;">true</span>

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,内容:

Xml代码


<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文件,在文件末尾添加:

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: