更新企业应用程序文件的方法
您可以用几种方法来更新服务器或集群上部署的 Java™ Platform, Enterprise Edition (Java EE) 应用程序文件。
选项 | 方法 | 注释 | 更新之后启动 |
---|---|---|---|
管理控制台更新向导 请参阅使用控制台更新企业应用程序。 要从 Java EE 应用程序或模块中移除单个文件,请参阅有关移除企业文件的主题。 |
简单执行以下操作:
|
在准备应用程序更新页面上:
|
在企业应用程序页面上,选择已更新的应用程序并单击启动。 |
![]() ![]() |
![]() ![]() |
![]() ![]() |
![]() ![]() 对于 Deployment Manager 受监控目录上的安装,如果 Node Agent 或服务器未在运行,那么产品不会自动启动应用程序或模块。 |
![]() ![]() |
![]() ![]()
|
![]() ![]() |
![]() ![]() 对于 Deployment Manager 受监控目录上的安装,如果 Node Agent 或服务器未在运行,那么产品不会自动启动应用程序或模块。 |
wsadmin 脚本 请参阅有关使用 wsadmin 脚本编制工具更新已安装的应用程序的主题。 |
在脚本中或命令提示符下使用 update 命令或 updateInteractive 命令。有关 update 和 updateInteractive 命令的更多信息,请参阅有关用于 AdminApp 对象的命令的主题。 | “wsadmin wsadmin 脚本编制入门”主题概述了 wsadmin。 | 使用 invoke 命令和 startApplication 属性来启动应用程序。 有关 invoke 命令的更多信息,请参阅有关用于 AdminControl 对象的命令的主题。 |
Java 应用程序编程接口 请参阅有关使用管理程序 (JMX) 的主题。 |
通过完成有关“通过编程来管理应用程序”的主题中的步骤来更新已部署的应用程序。 | 使用下列来更新应用程序:
|
使用 AdminControl 在 ApplicationManager MBean 上调用 startApplication 方法。 |
快速部署工具 请参阅快速部署 J2EE 应用程序中的主题。 |
简单执行以下操作:
|
快速部署工具具有下列优点:
|
使用先前的任何选项来启动应用程序。在“企业应用程序”页面上单击启动是最容易的选项。 |
热部署和动态重新装入 | 简单执行以下操作:
|
如果您是 WebSphere® Application Server 的新用户,请使用管理控制台更新应用程序。该选项较容易。 热部署和动态重新装入更难完成。您必须在部署了应用程序的服务器上直接处理应用程序或模块文件。 特别要提到的是,任何使用注释的新功能实质上都可以与热部署交互。有关使用热部署来部署应用程序时这些交互的更多信息,请参阅 metadata-complete 属性下的信息。 |
使用先前的任何选项来启动应用程序。在“企业应用程序”页面上单击启动是最容易的选项。 |
您可以更新已安装的应用程序使用的 .ear、企业 Bean .jar、web 模块 .war、会话启动协议 (SIP) 归档 (.sar)、连接器 .rar、应用程序客户机 .jar 以及任何其他文件。
如果在应用程序正在运行时对其进行更新,WebSphere Application Server 会自动停止该应用程序,更新应用程序逻辑,然后重新启动应用程序。如果应用程序不自动启动,请使用某个启动选项手动将它启动。有关重新启动已更新的应用程序的更多信息,请参阅 IBM® WebSphere Developer Technical Journal: System management for WebSphere Application Server V6 -- Part 5 Flexible options for updating deployed applications 中的“Fine-grained recycle behavior”。
如果在应用程序正在运行时更新模块元数据,那么重新启动应用程序可能不足以使更改生效。例如,如果更改正在运行的 Java EE 6 应用程序(其使用注释)中的描述符,那么必须重新安装该应用程序。如果更改在应用程序中引入、移除或更改类层次结构的类,并且这些更改会影响带注释的类,那么也必须重新安装该应用程序。
metadata-complete 属性
- metadata-complete 为 false 时,将写入两个新文件:web_merged.xml(包含具有注释元数据的 web.xml 中合并的结果)以及一个新文件 ibm-metadata.xml(包含无法在 web_merged.xml 中存储的更多注释相关的数据)。web_merged.xml 文件还包含从 WAR WEB-INF/lib 下的 JAR 文件中的 web-fragment.xml 读取的其他元数据。
- metadata-complete 为 true 时,不会生成 web_merged.xml,且不会创建 ibm-metadata.xml。仅当生成了 web_merged.xml 文件时,才会生成 ibm-metadata.xml 文件。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2011/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3.0.xsd"
version="3.0" metadata-complete="true">
<display-name>TestServlet30</display-name>
</web-app>
应该更新
web.xml 和 web_fragment.xml 文件(如果这些文件正在推动热部署更新)。如果仅更新 web_merged.xml,在执行了导致 web_merged.xml 重新生成的任何管理操作的情况下,热部署更改将丢失。对 WAR 文件中 web.xml 和 EJBJAR 文件中 ejb-jar.xml 的处理相同时,将为 WAR 文件创建 web_merged.xml(如果 web.xml 缺失或 metadata-complete 已设置为 false),为 EJBJAR 文件创建 ejb-jar_merged.xml(如果 ejb-jar.xml 缺失或 metadata-complete 已设置为 false)。
在任一情况下,无论何时创建合并 XML,都会创建 ibm-metadata.xml。(并且仅当创建合并的 XML 时才会创建。)
在任一情况下,如果部署将 metadata-complete 从 false 更改为 true,那么将会创建或替换 XML 文件(web.xml 或 ejb-jar.xml),不会创建合并的 XML 文件,并且不会创建 ibm-metadata.xml。
- web.xml metadata-complete 设置与 EJB-IN-WAR 处理进行交互。
- 当 WAR 文件中不存在 EJB 内容时,将不会执行 EJB-IN-WAR 处理。
- 部署可以单独地将 web.xml 或 ejb-jar.xml 的 metadata-complete 从 false 更改为 true。
- 当任何一个合并 XML 创建时,将会创建 ibm-metadata.xml。(未创建两个合并 XML 时不会创建此文件。)
对于 EJB-IN-WAR,以下规则适用:
- 当 web.xml 将 metadata-complete 设置为 true 并且 ejb-jar.xml 不存在时,即使 WAR 文件中存在 EJB 注释,也不会执行 EJB-IN-WAR 处理。
- 当 web.xml 将 metadata-complete 设置为 false(或 web.xml 不存在)并且 ejb-jar.xml 不存在时,仅当 WAR 文件中存在 EJB 注释时,才会执行 EJB-IN-WAR 处理。
- 当 ejb-jar.xml 存在时,不会使用 web.xml 的 metadata-complete 设置来确定 EJB 处理执行的任务。存在 ejb-jar.xml 时,可通过 ejb-jar.xml 的 metadata-complete 设置确定完成哪些 EJB-IN-WAR 处理。