virgo server使用指南(2)?这个章节来看看virgo server的目录结构,如有错漏请指正。??以上是virgo server的
virgo server使用指南(2)
?这个章节来看看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 bundle2)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=externalhosted-repository.searchPattern=repository/hosted/*
上述配置表示客户端将可以访问hosted目录下的所有资源。
(2)org.eclipse.virgo.medic.properties该文件用于配置日志流文件内容如下:dump.root.directory=serviceability/dumplog.wrapSysOut=truelog.wrapSysErr=truelog.dump.level=DEBUGlog.dump.bufferSize=10000log.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是类似的,用于配置本地资源
?