`
snoopy7713
  • 浏览: 1149113 次
  • 性别: Icon_minigender_2
  • 来自: 火星郊区
博客专栏
Group-logo
OSGi
浏览量:0
社区版块
存档分类
最新评论

virgo server使用指南

    博客分类:
  • OSGi
阅读更多

virgo server的前身是spring dm server,是由spring贡献给eclipse的一个项目,是一个完整的基于OSGI的应用服务器。

spring tool suite 提供了spring dm server的插件,使服务器的配置和应用的部署都变得简单。

 

本文描述virgo server的大体配置

 

(1)下载vrigo server 插件

这个已经在http://georgezeng.iteye.com/blog/1129181 中做过介绍了,这里不再熬述。

 

(2)virgo server的配置页

新建一个virgo server实例。如图,servers插件中加入了一个vrigo server实例

 

 

通过双击该实例打开下面的配置页


 

 

  • General Information,Publishing,Timeouts
与其它的server配置并无区别,不做介绍

  • Redeploy Behavior
这里应该理解为Bundle Refresh。这里是一个过滤文件列表的配置,即当你修改了某个bundle项目的资源文件时,是否对该bundle进行重新的refersh操作。如 果在这个文件列表中加入了你希望过滤的文件类型,比如*.html,那么此时你修改html文件将不会对bundle进行refresh,但是文件依然会 被部署到服务器的bundle实例中。
为什么这么做呢?比如你在开发web模块,每当你修改一次html或者jsp的时候就server就重新对bundle进行refresh的话,那么相当于你重启了web应用,那将是非常蛋疼的事情。
注:这里默认有对xml文件进行过滤,但是spring的xml文件比较特殊,修改它会导致Refresh。

  • Deployer Control
这个是与server进行通信的端口,通过它对server进行各种OSGI 控制台命令的操作

  • Artefact Deployment Order
这里Artefact是Bundle、PAR、Plan的总称(PAR和Plan后面会提到),这里是对Artefact进行一个全局的顺序配置,即server在启动的时候对这些Artefact进行一个顺序激活。

  • Server Startup Configuration
1) Tail application trace files into Console view:
跟踪应用的日志输出到控制台。不过实际使用没有任何效果,所以我们需要手动设置。
server默认将sys.out和sys.err都重定向到日志文件中了,开发的时候我们最好把这个特性取消,这样就不需要跑到相应的目录下去看日志文件,可以马上从控制台看到结果。
打开%VIRGO_SERVER_HOME%/config/org.eclipse.virgo.medic.properties文件,修改两行配置:
log.wrapSysOut=false
log.wrapSysErr=false
保存即可

2) Start server with -clean option
当勾选了这个选项后,server将会每次启动服务器的时候清空work目录(这个目录跟tomcat中的work很相似,但是它存放了更多的内容,稍后再讲)

这个章节来看看virgo server的目录结构,如有错漏请指正。

 



 以上是virgo server的根目录下的所有内容,这里只讲几个主要的目录。

 

(1) bin目录


 bin目录用于存放服务器的执行文件,其中startup是用于启动服务器的脚本,shutdown则是停止服务器的脚本。(脚本在linux和windows下注意使用不同的后缀名,例如startup.sh或startup.bat,以下皆省略)
(1.1)启动服务器,以默认的方式
%virgo_server_home%bin/startup
(1.2)启动服务器,并清空work目录的内容
%virgo_server_home%bin/startup -clean
(1.3)启动服务器,进行远程调试
%virgo_server_home%bin/startup -debug <port> (-suspend)
这种方式是用于在eclipse中进行远程调试
port参数如果不添加则默认是8000端口,否则就是指定的端口号
括号里的suspend参数如果添加了,则server不会真正启动,服务器会被挂起,直到某个远程调试进程访问了服务器才会开始真正的启动,这种方式对于在启动期间进行错误诊断很有用。
(1.4)启动服务器,并设置jmx远程访问端口
%virgo_server_home%bin/startup -jmxport <port>
通过JMX对其进行访问,可以使用jconsole或者其它的JMX访问管理工具对其进行监控。
如果是本地监控,则不需要添加jmxport参数和端口,就可以直接访问,如果是远程监控,则需要加上这个参数,并设置端口号,默认的帐号和密码是admin/springsource
注:可以通过bin目录下的jconsole脚本启动jconsole
(1.5)启动多个服务器实例
%virgo_server_home%bin/startup -configDir <dir>
通过加入configDir参数来改变服务器的默认的配置路径,每个服务器配置启动时就是一个独立的服务器实例,因此一个服务器可以启动多个不同的实例,默认的配置路径是config目录
(1.6)停止服务器
%virgo_server_home%bin/shutdown (-immediate )(-jmxport <port>
immediate参数的加入迫使服务器立即关闭;
如果在启动时加入了额外的jmxport的参数,那么在关闭的时候也需要指定端口
(1.7)不启动服务器清空work目录
%virgo_server_home%bin/startup -clean -noStart
这是一种特殊的启动方式,主要目的是为了清空work目录,服务器不会真正被启动


(2)config目录


在(1)中提到了config目录,这个目录是用于配置服务器的,是服务器默认读取配置信息的地方,可以根据这个目录复制粘贴一个新的配置目录用于配置不同的服务器实例。

Artifact的概念
这里先讲一下Artifact,后面的配置都将与这个有关。
Artifact在这里可以理解为virgo server的应用资源,分为5种
1)osgi bundle
2)virgo的配置文件(*.properties)
3)PAR资源(vrigo的一种应用的打包形式,类似WAR或者JAR,作为一个整体发布)
4)PLAN资源(virgo的另一种应用的打包形式,这种形式不是物理意义上的打包,而是一种通过XML文件进行声明的打包,即内容在物理上是原始的,通过PLAN完成了整体发布)
5)library资源(jar包)

Repository的概念
一个repository可以包含多个artifact,即repository是一个资源库,可以为服务器配置多个不同的资源库,供不同的应用或服务器实例使用。
对Repository内容的修改(即添加、替换或删除资源)都不会影响到服务器中正在运行的artifact(即应用)的部署,刷新或者卸载。
Repository分成了3种类型
1)external
指定一个目录(将会包含所有的子目录)作为存放的位置,可以通过设置文本模式匹配来进行目录里的资源筛选,只有匹配成功的才会被视为artifact,从而决定哪些成为external的资源。
这种资源将会在启动服务器的时候建立一些index文件存放于work目录(这种情况只会在work目录还没有相对应的index文件的情况下,即首次启动服务器或者清空过work目录),并保存其副本(可使用的形式)在work目录中,
服务器在每次启动的时候将通过这些index文件进行比较,已经扫描过的资源将不会重复解析加载,只会加载尚未加入index中的资源。

配置如下:
<repository-name>.type=external
<repository-name>.searchPattern=repository/ext/*

注:<repository-name>表示自定义的资源库名称;
type用于指定的资源库类型;
searchPattern用于指定资源库的目录地址,这个地址是相对于服务器安装路径的,即全路径为%vrigo_server_home%reposiroty/ext,*表示当前目录下所有的资源文件都将可用,可以通过其它文本模式进行匹配过滤。

2)watched
指定一个目录(仅扫描当前目录,不会包含其子目录)作为存放的位置,不允许通过文本模式匹配的方式来进行筛选,在这个目录下的所有资源都将被扫描作为artifact。
服务器会定期扫描此类目录,间隔扫描的时间通过配置完成;当有应用被部署或者刷新或者卸载的时候也会触发其重新进行扫描。

配置如下:
<repository-name>.type=watched
<repository-name>.watchDirectory =repository/usr
<repository-name>.watchInterval =30

注:watchDirectory用于指定资源库的目录,这里只能指定到目录名,不能使用通配符进行文本匹配;
watchInterval用于指定扫描的间隔时间,单位是秒,如果不设置默认是5秒

3)remote
这是一种特殊的repository,用于提供给客户端(即另一个virgo server实例)获取远程资源到其本地。一般作为资源服务器。

客户端的配置如下:
<repository-name>.type=remote
<repository-name>.uri =<uri>
<repository-name>.indexRefreshInterval =30

注:uri用于指定资源服务器提供的资源链接;
indexRefreshInterval用于以指定的间隔时间对远程的资源重新进行内容匹配,单位是秒,如果不设置默认是5秒

资源服务器端的配置远程资源设置可以是external或者watched的,配置跟上述是一样的


(1)org.eclipse.virgo.apps.repository.properties
该文件用于资源服务器配置提供给客户端的资源库的信息。例如:
文件的内容默认如下:
hosted-repository.type=external
hosted-repository.searchPattern=repository/hosted/*

上述配置表示客户端将可以访问hosted目录下的所有资源。

(2)org.eclipse.virgo.medic.properties
该文件用于配置日志流
文件内容如下:
dump.root.directory=serviceability/dump
log.wrapSysOut=true
log.wrapSysErr=true
log.dump.level=DEBUG
log.dump.bufferSize=10000
log.dump.pattern=[%d{yyyy-MM-dd HH:mm:ss.SSS}] %-28.28thread %-64.64logger{64} %X{medic.eventCode} %msg %ex%n

建议在开发阶段将log.wrapSysOut和log.wrapSysErr的值设置为false,让其结果输出到控制台,便于跟踪。

(3) org.eclipse.virgo.repository.properties
该文件跟org.eclipse.virgo.apps.repository.properties是类似的,用于配置本地资源
分享到:
评论
1 楼 liuyiyou 2012-07-20  
Caused by: org.eclipse.gemini.web.core.WebApplicationStartFailedException: org.eclipse.gemini.web.core.spi.ServletContainerException: Web application at '/formtags-war-3.0.0.RELEASE' failed to start. Check the logs for more details.
at org.eclipse.gemini.web.internal.StandardWebApplication.start(StandardWebApplication.java:108)
at org.eclipse.virgo.web.core.internal.WebBundleLifecycleListener.onStarted(WebBundleLifecycleListener.java:122)
... 8 common frames omitted
Caused by: org.eclipse.gemini.web.core.spi.ServletContainerException: Web application at '/formtags-war-3.0.0.RELEASE' failed to start. Check the logs for more details.
at org.eclipse.gemini.web.tomcat.internal.TomcatServletContainer.startWebApplication(TomcatServletContainer.java:125)
at org.eclipse.gemini.web.internal.StandardWebApplication.start(StandardWebApplication.java:91)
... 9 common frames omitted

这是什么原因?这个war文件是一个标准的war文件。在Tomcat上能运行

相关推荐

    virgo server

    5. `doc`目录:可能包含Virgo Server的用户指南、API文档和技术参考。 6. `lib`目录:存放运行时所需的库文件,包括Virgo Server的实现库和依赖的第三方库。 在实际使用中,开发者首先需要解压这个压缩包,然后通过...

    基于VirgoServer进行Spring Osgi Web开发

    在本文中,我们将深入探讨如何基于VirgoServer进行Spring Osgi Web开发,这是一个涉及OSGi容器、Spring框架和Web应用程序的集成技术。首先,我们需要确保拥有正确的开发环境和工具,包括Spring Tool Suite (STS),...

    最新virgo-tomcat-server

    【最新virgo-tomcat-server】是一个专为Apache Tomcat设计的服务器扩展,它提供了更为丰富和高级的服务管理功能,增强了Tomcat在企业级应用部署中的能力。Virgo服务器是SpringSource公司(现已被VMware收购)开发的...

    最新virgo-jetty-server

    【最新virgo-jetty-server】是一款专为Jetty设计的Virgo服务器,它提供了一种高效、可扩展的运行环境,使得基于Java技术的应用...通过深入学习和熟练掌握virgo-jetty-server的使用,可以显著提升项目开发和运维的效率。

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

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

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

    5. **日志和调试**:学会在VirgoServer中配置和使用日志系统,以及进行有效的调试。 通过以上讲解,我们可以看到基于VirgoServer的Spring OSGi Web开发涉及了模块化、服务化、动态部署等多个核心概念。掌握这些知识...

    virgo-web-server

    在实际使用中,Virgo Web Server的一些关键特性包括: 1. **OSGi支持**:Virgo采用了Equinox OSGi实现,提供了一个模块化的运行时环境,使得应用被分解为独立的、互相隔离的模块。 2. **Spring应用程序上下文**:...

    virgo编程手册.pdf

    《Virgo编程手册》是专为开发者们设计的一份详尽指南,旨在深入解析Virgo这一强大企业级应用服务器的特性和使用方法。本手册由多位行业专家共同编撰,包括Ramnivas Laddad、Colin Yates、Sam Brannen、Rob Harrop等...

    Virgo tomcat server/VTS 非标签,代码获取Snaps子bundles

    在Virgo中如果使用snaps对Web模块进行动态管理,可以使用官方提供的snaps进行开发,但是官方只提供了Tag标签的实现,这个jar包是提供根据host Web Bundle获取子Web Bundle的方法

    virgo中添加hibernate需要的库

    为了在Virgo中使用Hibernate,我们需要找到适合OSGi环境的Hibernate OSGi bundles。这些bundles通常包含了Hibernate的核心库,以及其依赖的JPA、JDBC和其他相关库的OSGi化版本。 以下是添加Hibernate到Virgo的基本...

    virgo-bin包

    Virgo服务器使用了Apache Felix或Equinox等OSGi框架,这些框架提供了运行和管理bundle的基础。 Virgo-Bin包的使用者需要熟悉如何配置服务器,这可能涉及到修改服务器配置文件,比如`config.properties`,以设置端口...

    virgo分屏.zip

    Virgo分屏软件的使用方法非常直观。首先,用户可以通过双击“virgo.exe”文件启动程序。启动后,软件会以托盘图标的形式存在,右键点击图标可弹出菜单,选择想要的分屏模式。常见的分屏模式包括左右对半分、上下对半...

    工作区间工具 virgo

    工作区间工具 virgo

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

    值得注意的是,尽管Virgo提供了方便快捷的任务管理方式,但使用任何第三方工具都可能存在一定的风险,比如可能与某些应用程序不兼容,或者可能对系统的稳定性造成影响。因此,在安装和使用Virgo前,建议先备份重要...

    Virgo01

    因此,在将Virgo01解压并应用到项目之前,应该确认其使用权限,避免潜在的法律纠纷。 在实际应用中,字体的选择会根据目标受众、品牌调性、阅读距离等因素进行。例如,标题通常会选择有冲击力的粗体或特别设计的...

    极简虚拟桌面virgo-desktop.zip

    virgo是一款 Windows 下的极简虚拟桌面,源程序自身只有 7KB,支持 4 个虚拟桌面以及快捷键操作。  virgo极简到只有一个任务栏图标,连右键菜单都没有。 所有操作通过快捷键完成: ALT 1..4 -&gt; 切换 1 .. 4 ...

Global site tag (gtag.js) - Google Analytics