文档章节

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

蒲晓伟
 蒲晓伟
发布于 2015/11/13 12:01
字数 836
阅读 101
收藏 0

        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

本文转载自:http://tiamo.iteye.com/blog/1917005

共有 人打赏支持
蒲晓伟
粉丝 1
博文 21
码字总数 1076
作品 0
深圳
技术主管
私信 提问
Struts2+Spring3+Hibernate——整合byMaven

在平时的JavaEE开发中,为了能够用最快的速度开发项目,一般都会选择使用Struts2,SpringMVC,Spring,Hibernate,MyBatis这些开源框架来开发项目,而这些框架一般不是单独使用的,经常是Str...

凡尘里的一根葱
2015/11/10
0
0
Java Web开发环境的搭建(一)

工欲善其事必先利其器! 搭建开发环境需要使用的软件如下所示: JDK 1.7 / 1.8 JetBrains IDEA 2016.3.2 (集成开发工具) Maven 3.2.5 (项目构建与JAR包管理工具) Git for Windows 2.11 (...

Oxidyc
2016/12/28
43
0
转:Fuse ESB 学习笔记(一)构建

Fuse的SOA功能套件并不是独立开发,而是基于Apache的相关开源产品扩展和完善而来的,通过集成的方式提供了一套较为完整的SOA环境。 例如ESB产品的基础是ServiceMix,Message Broker是来自于 ...

红薯
2010/09/28
3.3K
3
Spring Cloud搭建开发环境

1 开发环境搭建 工欲善其事,必先利其器。在讲述本书的技术内容前,先将开发环境搭建好,本书所涉及基础环境将在本章准备,包括Eclipse、Maven等。 笔者建议读者在查阅本书过程中,使用与本书...

Jokey2017
2017/11/13
0
0
Java Web(1)类库依赖神器搭建——Maven

首先在Maven download下载合适自己平台的maven 2. 我的是在windows下搭建的开发环境,(PS:毕竟学生党,没有mac,对linux又不熟悉。)。然后解压到到一个文件夹中 3. 配置maven的环境变量 主...

Jagery
2015/11/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

前端、后端和全栈到底不该学什么

1、前言 在职业规划咨询过程中经常会被问到这样的问题: 老师,我是该深入钻研专精一门,走技术大牛路线,还是所有都要精通,做一个全栈工程师? 类似问题的变种还有,老师我是不是该30岁最迟...

前端攻城小牛
29分钟前
3
0
【git命令】git-stash

应用场景 应用场景:使用git的时候,我们往往使用branch解决任务切换问题,例如,我们往往会建一个自己的分支去修改和调试代码, 如果别人或者自己发现原有的分支上有个不得不修改的bug,我们...

echojson
31分钟前
2
0
centos7.3编译安装OpenSSL1.1.1b

简介 OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份。这个包广泛被应用在互联网的网页服务器上。 安装 下载:下载地址 ...

阿dai学长
33分钟前
1
0
0基础【转行】大数据

目前大数据行业异常火爆,不少人都对大数据充满了兴趣,其中有大部分人都是之前没有接触过计算机技术的,对编程语言也不太了解,那是不是这部分零基础的朋友就学不了大数据了呢?答案当然是否...

董黎明
34分钟前
1
0
Krpano 动态传参-action

效果解释:点击热点1,触发显示或隐藏热线2。 hotspot等标签允许编写自定义属性,这里直接设置自定义属性为dk=spot6,点击spot7,显示或隐藏spot6。 action方法体中,直接引用get(dk)即可获得...

华山猛男
39分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部