48.2. 打包和部署Web模块

Web应用是最小的、可部署的一组可重用的Web资源。Web应用被打包和部署成Web ARchive(WAR) 文件,是一个带有 .war 后缀的JAR文件。一个Web应用可能包含:

48.2.1. Web应用的目录结构

Web应用使用层次结构存放Web资源,在开发阶段表现为文件系统的目录结构。如下图所示:

Web应用的目录结构

48.2.2. Web模块的部署描述文件

部署Web应用首先要配置web.xml文件。开发人员需要在Web.xml部署描述文件中配置:

  • ServletContext初始化参数

  • Session配置

  • Servlet/JSP定义

  • Servlet/JSP映射

  • MIME类型映射

  • 欢迎文件列表

  • 错误页面

  • 安全

Web模块单独部署时可能还需要部署描述文件apusic-application.xml配置金蝶Apusic应用服务器相关的信息,如context-root、EJB引用、资源引用等。由于每个web模块都必须指定一个唯一的context-root,因此有三种方法指定一个独立web模块的context-root:

  • 在部署时指定base-context,请参考第 41.1 节 “appctl工具”

  • 在WAR中包含一个apusic-application.xml文件指定context-root;

  • 如果以上两种方法都没有采用,则使用appctl命令中指定的应用名作为context-root。如果使用了自动部署,WAR文件名去掉.war后缀后作为应用名。

48.2.3. Web模块的两种形式

在金蝶Apusic应用服务器上,支持两种形式的Web-WAR,一种是标准的JAR文件形式,另一种则可以是目录形式的Web-JAR。通常,在Web应用的开发阶段,采用目录的Web-WAR,可以减少使用JAR工具打包的工作,并可方便的对模块进行修改。

而在实际的装配和部署阶段,往往采用易于管理的标准JAR文件格式。

当使用标准的JAR文件形式打包Web-WAR模块时,只需按照Web应用的结构,使用jar工具打包即可。

48.2.4. 部署Web模块

使用金蝶Apusic应用服务器提供的appctl工具部署Web模块。金蝶Apusic应用服务器支持目录形式和打包形式的Web模块,例如:

appctl install web_app_name MyWeb.war

如果Web模块是目录的形式则Web应用无须安装,仅在server.xml中登记一项。如果Web模块是打包的形式则将应用自动解压缩到DOMAIN_NAME/deploy目录下的应用子目录中(其中DOMAIN_NAME为当前正在运行的金蝶Apusic应用服务器实例域名),如果该档案文件发生变化,在重启应用时将对Web模块重新自动解包。在应用子目录中每个模块都建有一个临时文件夹,用于存放运行时生成的临时文件,此临时文件夹代替了原来的scratch目录。

48.2.5. 自动部署

将打包的Web-WAR模块拷贝到DOMAIN_NAME/applications目录,Web应用会被自动部署。其中DOMAIN_NAME为正在运行的金蝶Apusic应用服务器域名。