`
qq38450529
  • 浏览: 27952 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

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

    博客分类:
  • OSGI
阅读更多

        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

  • 大小: 78.9 KB
  • 大小: 61.1 KB
  • 大小: 53 KB
分享到:
评论
5 楼 yuechao4039 2018-01-29  
qq38450529 写道
blueskyzs 写道
博主,要报这个错啊
Cannot find plan 'org.eclipse.virgo.kernel.userregion.springdm' version range '[0.0.0, oo)' in repository 'stage-ext-usr'.



${virgo_home}/configuration/org.eclipse.virgo.kernel.userregion.properties
你修改这个文件的时候修改错了应该。修改前注意备份



都抄过来的,咋会错
4 楼 qq38450529 2014-01-09  
blueskyzs 写道
博主,要报这个错啊
Cannot find plan 'org.eclipse.virgo.kernel.userregion.springdm' version range '[0.0.0, oo)' in repository 'stage-ext-usr'.



${virgo_home}/configuration/org.eclipse.virgo.kernel.userregion.properties
你修改这个文件的时候修改错了应该。修改前注意备份
3 楼 blueskyzs 2013-11-17  
博主,要报这个错啊
Cannot find plan 'org.eclipse.virgo.kernel.userregion.springdm' version range '[0.0.0, oo)' in repository 'stage-ext-usr'.

2 楼 qq38450529 2013-09-27  
lelessz 写道
问个问题 。
template.mf 哪来的?

自己建一个
1 楼 lelessz 2013-09-12  
问个问题 。
template.mf 哪来的?

相关推荐

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

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

    学位论文-—基于virgoserver进行springosgiweb开发.doc

    基于VirgoServer进行Spring Osgi Web开发需要配置VirgoServer开发环境,使用Maven和Eclipse Virgo Tools,创建Bundle Project,并配置Spring配置文件。同时,需要实现Servlet类,用于处理请求,并配置classpath和...

    virgo server

    Virgo Server与Maven的集成是其另一个关键特点。Maven是Java项目管理和构建工具,它通过依赖管理和项目信息管理来简化项目的构建、报告和文档生成过程。在Virgo Server中,开发者可以利用Maven的生命周期和插件机制...

    基于VirgoServer进行Spring Osgi Web开发

    首先,我们需要确保拥有正确的开发环境和工具,包括Spring Tool Suite (STS),Maven插件,以及Eclipse Virgo Tools插件。 **一、开发工具** 1. **Spring Tool Suite (STS)**: 这是一个基于Eclipse的集成开发环境,...

    基于VirgoServer进行SpringOsgiWeb开发.doc

    通过以上步骤,我们不仅构建了一个基于VirgoServer的Spring OSGi Web开发环境,还完成了两个具体项目的搭建和配置。这种方式充分利用了Spring框架的优势以及OSGi的模块化特性,有助于构建灵活、可扩展的应用程序。

    virgo编程手册.pdf

    - **集成开发环境(IDE)集成**:Virgo与Eclipse等主流IDE的深度集成,使得开发者可以轻松地进行调试、测试和部署。手册提供了详细的步骤指导,帮助用户快速上手。 - **库和库供应**:Virgo支持通过各种渠道自动...

    最新virgo-tomcat-server

    这个版本包含了Virgo服务器的核心组件,可能包括了配置文件、管理工具、OSGi运行时环境以及与Tomcat的集成模块。用户可以通过解压这个文件,然后按照官方文档的指引在本地环境中安装和配置Virgo服务器,以便在Apache...

    最新virgo开发文档

    Virgo是SpringSource公司开发的一款基于OSGi技术的开源企业级服务器,主要用于构建模块化、可扩展的应用系统。Virgo提供了强大的服务管理和部署环境,它支持Spring应用和服务的动态部署和管理,使得开发者能够轻松地...

    virgo中添加hibernate需要的库

    Virgo,全称为OSGi Enterprise Platform,是SpringSource推出的一款基于OSGi规范的应用服务器,旨在为开发和部署企业级应用程序提供一个模块化、可扩展的平台。而Hibernate,则是一款流行的Java ORM(对象关系映射)...

    最新virgo-jetty-server

    【最新virgo-jetty-server】是一款专为Jetty设计的Virgo服务器,它提供了一种高效、可扩展的运行环境,使得基于Java技术的应用能够快速部署和管理。Virgo服务器是SpringSource公司(现已被VMware收购)开发的一款轻...

    virgo-一款简单的任务栏管理工具

    总的来说,Virgo是Windows用户提升任务管理效率的一款实用工具,通过快捷键和任务组织功能,帮助用户在多任务环境中游刃有余。对于那些频繁在多个窗口间切换的用户来说,Virgo无疑是一个值得尝试的解决方案。

    virgo-plan-maven-plugin

    Maven 插件,它根据项目直接依赖(忽略瞬态依赖)生成 Virgo 计划 XML。 示例配置: 使用“计划”项目打包 &lt;groupId&gt;group &lt;artifactId&gt;artifact &lt;version&gt;0.0.1-SNAPSHOT &lt;packaging&gt;plan &lt;groupId&gt;...

    virgo-web-server

    "Virgo Web Server" 是一个基于Java平台的轻量级应用服务器,主要由SpringSource团队开发,后来成为VMware(现为Dell Technologies的一部分)的一部分。这个服务器是为运行Spring框架的应用程序而设计的,特别关注高...

    virgo-bin包

    "Virgo-Bin" 包,正如其名,是一个与Virgo相关的二进制软件包。Virgo项目,源自SpringSource,是企业级Java应用程序的一个关键组成部分,特别是对于那些依赖于OSGi(开放服务网关规范)进行模块化系统开发的项目来说...

    virgo programmer guide

    Virgo是由SpringSource公司开发的轻量级应用服务器,它基于OSGi(开放服务网关规范)框架,提供了一个模块化的运行环境,允许开发者将应用程序拆分成可独立更新的模块。Virgo的灵活性和模块化设计使其成为SOA环境下...

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

    在IT行业中,Spring OSGi(Open Service Gateway Initiative)是一种模块化开发的框架,它将Spring框架与OSGi服务架构相结合,为Web应用程序提供了一种更灵活、可扩展的开发方式。VirgoServer是Pivotal公司推出的一...

Global site tag (gtag.js) - Google Analytics