`
snoopy7713
  • 浏览: 1126098 次
  • 性别: 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上能运行

相关推荐

Global site tag (gtag.js) - Google Analytics