16.2. 部署应用程序

16.2.1. 目录结构

  • Web应用的目录结构

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

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

    Web应用的目录结构

    图 16.1. Web应用的目录结构


  • EJB-JAR文件结构

    EJB-JAR文件是一个由开发者提供的、包含一个或多个EJB组件的应用可装配单元文件,是一个一般的JAR文件。一般一个EJB-JAR文件代表一个EJB模块。当一个或多个EJB模块被装配到一个JavaEE应用,并由装配者通过部署描述提供了装配信息和具体运行环境中资源信息之后,即可部署到应用服务器。Apusic应用服务器支持EJB-JAR的单独部署,这时,EJB-JAR中就要包含装配信息。EJB-JAR文件的结构如下图:

    EJB-JAR文件结构

    图 16.2. EJB-JAR文件结构


  • JavaEE应用的目录结构

    JavaEE应用由一个或多个JavaEE组件和部署描述文件组成。在金蝶Apusic应用服务器上,实际的Java EE应用被打包成为一个后缀名为“.ear”的EAR文件。实际的EAR文件中的目录结构如下图:

    JavaEE应用的目录结构

    图 16.3. JavaEE应用的目录结构


16.2.2. 准备工作

  • 部署Web模块

    部署Web应用首先要配置web.xml文件。开发人员需要在部署描述文件web.xml中配置:ServletContext初始化参数、Session配置、Servlet/JSP定义、Servlet/JSP映射、MIME类型映射、欢迎文件列表、错误页面、安全。

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

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

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

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

  • 部署EJB模块

    部署描述文件ejb-jar.xml为EJB模块提供如下两方面的信息:

    • 结构信息

      ejb-jar.xml文件为模块中的EJB组件提供的结构信息并声明组件的外部依存关系,对于组件的开发者而言,结构信息是必须提供的,而且一般结构信息在装配和部署时不能更改,以免破坏组件的功能。

    • 装配信息

      装配信息提供将组件装配到一起,形成一个更大的可装配单元的信息,装配信息对于组件提供者而言是可选的,并且在装配和部署时可以通过修改装配信息改变装配后的应用的行为。

      ejb-jar.xml文件必须符合ejb-jar_2_1.xsd文档类型声明,并在文件中指定正确的xsd文件:

      xmlns="http://java.sun.com/xml/ns/javaee"
                    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                    http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd"
                    version="3.0"

      EJB模块单独部署时还需要在部署描述文件apusic-application.xml(或apusic-ejb-jar.xml)中配置Apusic相关的信息,如EJB引用、资源引用、CMP2.0的域-数据库列映射、CMP2.0关系映射等。

  • 部署JavaEE应用

    Java EE标准的部署描述文件application.xml列出了应用包含的所有Java EE模块。

    部署描述文件apusic-application.xml配置应用包含模块的Apusic相关的信息,如context-root、EJB引用、资源引用、CMP2.0的域-数据库列映射、CMP2.0关系映射等。

16.2.3. 自动部署

  • 部署Web模块

    将打包的Web-WAR模块拷贝到APUSIC_HOME/domains/<DOMAIN_NAME>/applications目录,Web应用会被自动部署。其中<DOMAIN_NAME>为正在运行的Apusic领域名。

  • 部署EJB模块

    将打包的EJB-WAR模块拷贝到APUSIC_HOME/domains/<DOMAIN_NAME>/applications目录(其中<DOMAIN_NAME>为正在运行的Apusic领域名),EJB模块会被自动部署。

  • 部署Java EE应用

    将打包的Java EE应用EAR文件拷贝到APUSIC_HOME/domains/<DOMAIN_NAME>/applications目录(其中<DOMAIN_NAME>为正在运行的Apusic应用服务器实例的域名>),Java EE应用会被自动部署。

16.2.4. 使用appctl工具部署

在命令行提示符下,进入DOMAIN_HOME/bin/目录。

  • 部署Web模块

    在金蝶Apusic应用服务器上,支持两种形式的Web应用,一种是标准的压缩文件形式,另一种则可以是目录形式的Web应用。

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

    appctl install web_app_name MyWeb.war

    如果Web模块是目录的形式则Web应用无须安装,仅在server.xml中添加一个条目。如果Web模块是打包的形式则将应用自动解压缩到APUSIC_HOME/domains/<DOMAIN_NAME>/deploy目录下的应用子目录中(其中<DOMAIN_NAME>为当前正在运行的Apusic领域名),如果该档案文件发生变化,在重启应用时将对Web模块重新自动解包。在应用子目录中每个模块都建有一个临时文件夹,用于存放运行时生成的临时文件。

  • 部署EJB模块

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

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

    当使用标准的JAR文件形式打包EJB-JAR模块时,只需按照前面描述的EJB-JAR的结构,使用jar工具打包即可。

    使用Apusic提供的appctl工具部署EJB模块。Apusic支持目录形式和打包形式的EJB模块,例如:

    appctl install ejb_app_name MyEJB.jar

    如果EJB模块是目录的形式则无须安装,仅在server.xml中添加一个条目。如果EJB模块是打包的形式则将应用自动解压缩到APUSIC_HOME/domains/<DOMAIN_NAME>/deploy目录下的应用子目录件(其中<DOMAIN_NAME>为正在运行的Apusic领域名),如果该档案文件发生变化,在重启应用时将对EJB模块重新自动解包。在应用子目录中每个模块都建有一个临时文件夹,用于存放运行时生成的临时文件。

  • 部署JavaEE应用

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

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

    当使用标准的JAR文件形式打包Java EE应用时,只需按照前面描述的JavaEE应用目录结构,使用jar工具打包即可。

    使用Apusic提供的appctl工具部署JavaEE应用。Apusic支持目录形式和打包形式的JavaEE应用,例如:

    appctl install jee_app_name MyApp.ear

    如果应用是目录的形式则应用无须安装,仅在server.xml中添加一个条目。如果应用块是打包的形式则将应用自动解压缩到APUSIC_HOME/domains/<DOMAIN_NAME>/deploy目录下的应用子目录中(其中<DOMAIN_NAME>为正在运行的Apusic领域名),如果该档案文件发生变化,在重启应用时将对JavaEE应用重新自动解包。

16.2.5. 通过管理控制台部署

在访问远程管理控制台之前,必须先启动金蝶Apusic应用服务器。远程管理控制台是基于web方式的管理界面。

按照以下步骤启动远程管理控制台:

1. 在浏览器窗口打开以下URL:

http://hostname:6888/admin

其中:hostname指安装金蝶Apusic应用服务器软件的计算机的IP地址或主机名;6888是金蝶Apusic应用服务器默认的服务端口。

在Windows平台,可用如下方式打开远程管理控制台:

选择:开始->程序->金蝶Apusic->Apusic应用服务器->Apusic管理控制台(基于浏览器)

2. 进入远程控制登录界面时,将会提示输入登录的用户名和密码,输入Apusic初始登录用户名"admin"和登录密码(首次启动时设置的密码),作为提示输入登录的用户名和密码即可进入远程管理界面。

使用管理控制台方式部署应用

图 16.4. 使用管理控制台方式部署应用


[注意]注意

Apusic初始登录系统管理账号用户名是"admin",登录密码为首次启动时设置的密码。

16.2.6. 通过Apusic Studio部署

通过Apusic Studio部署工程时先要设置金蝶Apusic应用服务器:

选择:工程->右键属性(Properties)->Apusic工程属性,如下图所示,设置相应的Apusic应用服务器、目标域、JavaEE版本、EAR扩展文件夹。

     
设置金蝶Apusic应用服务器

图 16.5. 设置金蝶Apusic应用服务器


在开发透视图下,部署工程:

选择:工程->右键(部署到服务器)->部署,如下图所示。

  
使用Apusic Studio部署应用

图 16.6. 使用Apusic Studio部署应用


部署成功后在APUSIC_HOME/domains/[domainname]/deploy和APUSIC_HOME/domains/[domainname]/deploy/.extends目录下生成有关工程的相关文件。