打包用于部署的文件
WebLogic Server 支持使用 jar
实用工具或 Ant 的 jar
工具打包为归档文件或展开的归档目录的部署。
注意: | 一般而言,将应用程序部署到受管服务器时使用归档文件效率更高。但是,这样做需要重新部署应用程序,因而导致更难以更新应用程序(如更新 Web 内容)。 |
使用归档的文件
归档文件是包含应用程序或模块的所有类、静态文件、目录和部署描述符文件的单个文件。在大多数生产环境中,会将管理员收到的要部署的应用程序存储为归档文件。
使用 jar
实用工具打包的部署单元根据类型具有特定的文件扩展名:
除归档文件外,您还会收到部署计划,即为特定环境配置应用程序的单独文件。配置应用程序以进行生产部署更加详细地描述了部署计划。
使用展开的归档目录
展开的归档目录包含的文件和目录与 JAR 归档文件包含的文件和目录相同。如果选择使用展开的归档目录,则需要手工将以前归档的部署解包。但是,这些文件和目录直接驻留在文件系统中,未使用 jar
实用工具打包到单个归档文件中。
-
要在部署后对企业应用程序进行部分更新。如果将企业应用程序部署为展开的归档目录,可以更加轻松地更新应用程序的各个模块,且不必重新创建归档文件。 -
要部署的 Web 应用程序或企业应用程序包含要定期更新的静态文件。在这种情况下,因为可以在不重新创建归档文件的情况下更新和刷新静态文件,所以将应用程序部署为展开的目录更加方便。 -
要部署的 Web 应用程序通过应用程序上下文执行直接文件系统 I/O(例如,尝试以动态方式编辑或更新 Web 应用程序自身的某些部分的 Web 应用程序)。在这种情况下,执行 I/O 操作的模块应该具有用于工作的物理文件系统目录;当根据规范将应用程序部署为归档文件时,无法获得文件。
从归档文件创建展开的归档目录
如果您有要部署为展开的归档目录的归档文件,请使用 jar
实用工具将专用目录中的归档文件解包。例如:
mkdir /myapp
cd /myapp
jar xvf /dist/myapp.ear
如果要将包含其他模块归档文件的归档文件(例如,包括 JAR 或 WAR 文件的企业应用程序或 Web Service)解包,并且想要对这些模块进行部分更新,则必须也将嵌入式归档文件展开。确保将每个模块解包到与归档文件同名的子目录中。例如,将名为 myejb.jar
的模块解包到展开的企业应用程序目录的 /myejb.jar
子目录中。
注意: | 如果要为展开的 EAR 文件中的归档模块使用不同的子目录名称,必须修改应用程序自身当中对这些模块的所有引用。例如,必须更新在 manifest.mf 文件的 application.xml 和 CLASSPATH 条目中指定的 URI 值。 |
了解默认部署名称
首次将应用程序或独立模块部署到一个或多个 WebLogic Server 实例时,请指定部署名称以在总体上描述部署文件、目标服务器以及您选择的其他配置选项。以后只需使用该部署名称便可以在所有目标服务器上重新部署或停止部署单元。如果使用部署名称,当要在域中的服务器间使用部署单元时,不必重新标识部署文件和目标服务器。
如果部署时不指定部署名称,则部署工具会根据部署源文件选择默认名称。对于归档文件,weblogic.Deployer
使用不带文件扩展名的归档文件名。例如,文件 myear.ear
的默认部署名称为 myear
。对于展开的归档目录,weblogic.Deployer
使用您部署的顶级目录的名称。
对于 J2EE 库和可选包,weblogic.Deployer
使用在库的清单文件中指定的名称。如果未在库的清单文件中指定名称,则可以使用 -name
选项指定一个。
有关应用程序命名要求的信息,请参阅以下部分了解应用程序命名要求;要指定非默认部署名称,请参阅使用 weblogic.deployer 部署应用程序和模块。
了解应用程序命名要求
若要成功地将应用程序部署到 WebLogic Server,应用程序名必须有效。应用程序命名要求如下:
了解部署版本字符串
除了部署名称以外,应用程序或模块还可以具有相关联的版本字符串。版本字符串将应用程序的初始部署与以后重新部署的版本区分开。例如,您可能想要在以后更新应用程序以修复问题或添加新功能。在生产系统中,为应用程序的初始部署和后续部署维护版本字符串至关重要。如果这样做,可以在不中断现有客户端的服务的情况下更新和重新部署应用程序版本。有关详细信息,请参阅在生产环境中重新部署应用程序。
版本字符串在应用程序的清单文件中指定,应由开发小组与其他部署文件一起提供。“使用 WebLogic Server 开发应用程序”中的分配应用程序版本描述用于指定版本字符串的约定。
创建应用程序安装目录
应用程序安装目录将生成的配置文件与核心应用程序文件分开,以便可以在不干扰应用程序本身的情况下轻松地更改或替换配置文件。目录结构也可帮助您组织和维护相同应用程序部署文件的多个版本。
下图显示用于存储可部署应用程序或模块的单个版本的应用程序安装目录层次。
BEA 建议先将所有新生产部署复制到应用程序安装目录中,然后再部署到 WebLogic Server 域。从此目录结构进行部署可帮助您轻松地标识与部署单元相关联的所有文件 - 只需使用管理控制台部署安装根目录,控制台便会自动查找在配置期间生成的关联文件,如部署计划和 WebLogic Server 部署描述符。
创建应用程序安装目录的步骤
-
在系统上选择要用于存储应用程序和模块的部署文件的顶级目录。使用下列最佳做法: -
为要部署的应用程序或模块创建专用子目录:mkdir c:\deployments\production\myApplication
-
在该应用程序目录下创建一个子目录以指定要部署的应用程序的版本。使用应用程序的准确版本字符串命名该子目录。例如:mkdir c:\deployments\production\myApplication\91Beta
-
版本子目录将成为从中部署该目录的安装根目录。在版本子目录下创建名为app
和plan
的子目录:mkdir c:\deployments\production\myApplication\91Beta\app
mkdir c:\deployments\production\myApplication\91Beta\plan
注意: 如果有多个部署计划与应用程序相关联,请为每个计划创建一个 \plan
子目录。例如,如果有两个部署计划与应用程序myApplication
的91Beta
版本相关联,请创建两个\plan
子目录。例如:mkdir c:\deployments\production\myApplication\91Beta\plan1
mkdir c:\deployments\production\myApplication\91Beta\plan2
-
将应用程序源部署文件复制到\app
子目录中。如果要从归档文件部署,只需复制该归档文件,如下所示:cp c:\downloads\myApplication.ear c:\deployments\production\myApplication\91Beta\app
如果要从展开的归档目录部署,请将整个展开的归档目录复制到\app
中:cp -r c:\downloads\myApplication c:\deployments\production\myApplication\91Beta\app
这会生成新目录c:\deployments\production\myApplication\91Beta\app\myApplication
。 -
如果应用程序有一个或多个部署计划,请将它们复制到\plan
子目录中。cp c:\downloads\myApplicationPlans\plan.xml c:\deployments\production\myApplication\91Beta\plan
cp c:\downloads\myApplicationPlans\plan1.xml c:\deployments\production\myApplication\91Beta\plan1
cp c:\downloads\myApplicationPlans\plan2.xml c:\deployments\production\myApplication\91Beta\plan2
注意: 如果没有现有的部署计划,可以按照配置应用程序以进行生产部署中的描述使用管理控制台创建一个。管理控制台会自动将新生成的部署计划存储在应用程序安装目录的 \plan
子目录中。 -
要使用管理控制台安装应用程序,请选择应用程序安装目录。默认情况下,管理控制台使用名为plan.xml
的计划(如果 \plan
子目录中有该计划)。管理控制台无法标识除 \plan
子目录以外的其他子目录中的计划。换句话说,管制控制台无法标识 \plan1
或 \plan2
子目录中的计划。因此,如果应用程序有多个计划可用,必须在config.xml
中指出要使用的计划。请参阅配置应用程序以进行生产部署。有关 config.xml 的信息,请参阅“Creating WebLogic Domains Using the Configuration Wizard”。注意: 使用 weblogic.Deployer
工具时无法指定应用程序安装目录,默认情况下,该工具不使用可用的plan.xml
文件。您必须指定实际部署文件和计划以用于部署。请参阅使用 weblogic.deployer 部署应用程序和模块。
用于准备部署文件的最佳做法
BEA 建议在准备应用程序和模块以进行部署时使用下列最佳做法:
-
无论是部署归档文件还是部署展开的归档目录,请将部署文件存储在应用程序的安装目录中,如创建应用程序安装目录中所述。使用安装目录可简化部署过程,原因是:管理控制台知道在何处查找部署和配置文件。 -
管理源控制系统中的整个应用程序安装目录,以便可以在需要时轻松地恢复到以前的应用程序版本。