Dorado 5 : 16.1.部署方式 (RF1)

开发好的web系统最终发布时,一般都会进行打包处理,其中需要将整个系统所用到的资源全部打包,打包方式有很多,通常情况下我们都是使用ant或则集成ant的各种IDE工具自动实现,另外我们在部署之前还需要检查一下dorado.properties文件的配置。如果您对dorado还不太了解,则我们建议您直接利用dorado的studio操作,方法如下:

利用doradostudio打包:

使用dorado studio打开需要打包的web系统,并在当前系统环境下选择file菜单中的project proterties菜单项,该菜单项用于配置工程的系统属性,如下图:

图表 94
将该窗口切换到第二个标签页(Build),如下图:

图表 95
其中我们可以选择build项目的时候使用的Java Source Encoding,默认使用UTF-8编译,这个属性我们可以不用修改,我们修改Archive Path的配置,该配置主要告诉dorado Studio编译后是否生成war文件以及该文件的生成位置和文件名。
做好这些设定好之后,我们就可以在studio的主界面上利用其build菜单打包,界面操作如下

图表 96
Build执行后,可以在Message视图中看到有关这个war包的打包过程信息。在看到"BUILD SUCCESSFUL"信息之后我们就可以找到这个war包就可以发布到各种web服务器中。

利用其他工具打包的注意事项:

对于一些自定义的打包方式,我们只要搞清楚dorado打包所需的资源就可,查看studio打包用的build.xml文件:

Builder.xml

<?xml version="1.0" encoding="UTF-8"?>
<project name="build" default="rebuild" basedir=".">
<target name="compile">
<mkdir dir="${target-dir}">
</mkdir>
<javac destdir="${target-dir}" deprecation="true" debug="true" encoding="${java-source-encoding}" optimize="false" excludes="**/package.html">
<src>
<pathelement location="${source-dir}">
</pathelement>
</src>
<classpath>
<fileset dir="${lib-dir}">
<include name="servlet.jar">
</include>
</fileset>
<fileset dir="${web-lib-dir}">
<include name="*.jar">
</include>
</fileset>
</classpath>
</javac>
</target>

<target name="deploy">
<copy todir="${web-classes-dir}" filtering="yes">
<fileset dir="${source-dir}">
<include name="*/.xml"/>
</fileset>
</copy>
<copy todir="${web-classes-dir}/doradohome" filtering="yes">
<fileset dir="${home-dir}">
<include name="*/.*"/>
</fileset>
</copy>
</target>

<target name="archive" if="archive-path">
<zip destfile="${archive-path}">
<fileset dir="${web-root-dir}"/>
</zip>
</target>

<target name="rebuild" depends="compile,deploy,archive"/>
</project>

注意看其中的deploy的配置,studio默认打包两部分的资源:
${source-dir}:默认路径为${project-dir}/src,目标路径位${web-classes-dir}
${home-dir}:默认路径为${project-dir}/home,目标路径为${web-classes-dir}/doradohome
这样我们使用其他打包方式的时候只要注意将dorado项目中的home中的资源打包好就可以。

dorado.properties

在每一个dorado web 工程中的都有一个dorado.properties配置文件,该文件位于${web-root-dir}/web-inf目录中。基本信息如下:

dorado.properties

#Wed Mar 14 09:55:55 CST 2007
configFileLoader=com.bstek.dorado.common.fileloader.ResourceFileLoader
sourceFileLoader=com.bstek.dorado.common.fileloader.ResourceFileLoader
configFileLoader.root=doradohome
sourceFileLoader.root=

一般来说其中有四个配置选项,其中的XXXFileLoader用于设定资源加载器,dorado系统运行时需要加载和读取一些资源信息,如:home文件夹下的系统配置文件,以及dorado jsp本身的View配置文件,而XXXFileLoader.root则用于制定资源加载器读取资源信息的根目录, 资源加载器在该根目录下查找资源文件。

配置选项

说明

configFileLoader

系统基本配置资源加载器
可选项有:
com.bstek.dorado.common.fileloader.ResourceFileLoader
com.bstek.dorado.common.fileloader.PathFileLoader

sourceFileLoader

视图模型配置加载器
可选项有:
com.bstek.dorado.common.fileloader.ResourceFileLoader
com.bstek.dorado.common.fileloader.PathFileLoader
com.bstek.dorado.common.fileloader.AutoFileLoader

configFileLoader.root

系统基本配置资源加载器读取资源的根目录

sourceFileLoader.root

视图模型配置加载器读取资源的根目录

xmlProcessorClassName

定义dorado内部使用的XML解析器
可选项有:
com.bstek.dorado.utils.xml.dom4j.Dom4jXmlProcessor com.bstek.dorado.utils.xml.jdom9.JDom9XmlProcessor com.bstek.dorado.utils.xml.jdom10.JDom10XmlProcessor
如不定义此项, 则系统将按默认的顺序依次搜索jdom9, jdom10, dom4j


ResourceFileLoader

在上文的build.xml文件中我们已经知道,home文件夹的资源通常会被打包到${web-classes-dir}/doradohome目录下,因此dorado.properties中的configFileLoader.root配置选项一般都会设置为doradohome, ResourceFileLoader采用的是系统默认的资源加载方式,系统默认根目录为${web-classes-dir},因此configFileLoader.root配置设置为doradohome,而sourceFileLoader.root无需设置,直接到${web-classes-dir}中查找视图模型的xml配置文件即可。

PathFileLoader

值得注意的是,dorado studio在开发时通常利用PathFileLoader这种类型的资源加载器提高开发效率,这是按照文件的方式直接读取相关资源,好处是修改资源信息后无需部署即可使用,一下的dorado.properties就是在开发环境下的配置信息:

dorado.properties

#Wed Mar 14 09:03:34 CST 2007
configFileLoader=com.bstek.dorado.common.fileloader.PathFileLoader
sourceFileLoader=com.bstek.dorado.common.fileloader.PathFileLoader
configFileLoader.root=D\:/dorado5/sample/home
sourceFileLoader.root=D\:/dorado5/sample/src

使用PathFileLoader的时候configFileLoader.root与sourceFileLoader.root都会以绝对路径字符串形式配置,这种使用方式实际上也可以在服务器上部署,只要将这两个root配置正确即可。

AutoFileLoader

AutoFileLoader会自动的用PathFileLoader机制查找匹配的资源,如果未找到则使用ResourceFileLoader机制查找资源文件。使用这种方式在开发环境下尤其要注意PathFileLoader与ResourceFileLoader中重复文件版本的差异,调试的时候要清除需要使用的文件的准确问题再确定是否使用AutoFileLoader。

关于XML Processor

dorado中xml的解析是通过一些成熟的xml解析器处理的,目前支持的有jdom9,jdom10,dom4j.由于web系统中有很多的开源框架和成熟资源,通常我们在一个web系统中都会包含很多的jar文件,而部分的jar文件也需要使用xml解析器,由于某些jar文件的资源提供者在开发的时候限于当前环境的制约,只能使用某种特定的xml解析器才能正常工作,而不同的xml解析器并存时又可能会存在冲突,因此默认情况下dorado采用自适应的方式依次搜索jdom9,jdom10和dom4j匹配xml解析器,对于可能存在的冲突,我们可以通过在dorado.properties文件中添加xmlProcessorClassName属性配置,来强制指定一个xml解析器给dorado使用。关于xmlProcessorClassName的配置选项参考dorado.properties说明.