下列子主题描述了可能需要重新启动服务器的不同情况。
在开发环境中,您可能要在应用程序在服务器上运行时对其进行更改,例如,如果您要在服务器上调试应用程序。在某些情况下,您可以动态重新装入所修改的代码,而无需重新启动服务器。您可能会丢失程序的状态,具体取决于所修改的资源的类型以及服务器的类型。
当应用程序正在服务器上运行并且您要更改代码时,Java™ 虚拟机会保持运行初始代码,直到自动或手动重新装入该代码为止。例如,您可以修改 JSP 源代码,且会在服务器上自动重新装入这些更改。对于其他资源(例如,运行在 Tomcat 上的 Java 类),必须重新启动服务器以确保该服务器识别更改。
如果在服务器处于运行状态时更改服务器或服务器配置(例如,如果更改端口号),那么需要重新启动服务器。
您对 JSP、HTML、GIF、JPG 或类似资源文件的任何更改;在服务器运行过程中保存文件时,必须在服务器上发布该应用程序。如果对资源文件的更改是已链接资源,那么进行发布尤其重要,该已链接资源可能是存储在工作空间外部的文件系统中某些位置的文件或文件夹。工作台或服务器检测不到对已链接资源的更改,因为这些更改发生在工作空间外部。
有关自动或手动发布至服务器的更多信息,请参阅发布应用程序主题。
如果在服务器处于运行状态时更改 Servlet 并保存文件,那么将重新装入该 Servlet(如果已启用该应用程序的重新装入)。 当服务器运行热方法替换时1,更改将自动发生,而无需刷新浏览器。在服务器上发布应用程序时,该服务器将识别更改。 如果刷新 Web 浏览器,那么应用程序的状态将不会丢失。
要在服务器上发布应用程序,您可以等待自动发布时间间隔耗尽,也可以手工发布应用程序(在“服务器”视图中右键单击服务器并选择发布)。有关自动或手动发布至服务器的更多信息,请参阅发布应用程序主题。该项目的会话数据已丢失,但应用程序内其他项目的状态保持不变。您可以从“导航器”视图的菜单中重新启动项目。如果正在运行 Tomcat 并且尚未启用重新装入功能,那么需要重新启动服务器。
对于 WebSphere Application Server,这些规则还适用于 Web 项目的任何相依类或部署描述符。如果修改正在 WebSphere Application Server 上运行的 web.xml 部署描述符的安全性或登录配置属性,那么需要重新启动服务器。对于 Tomcat,任何这些更改都要求重新启动服务器。
如果在服务器运行时向 Web 项目添加 Servlet、相依类或 JSP 文件,那么将识别更改(如果已启用重新装入)。 如果未启用重新装入,那么需要发布应用程序并重新启动 EAR 项目(如果您正在运行 WebSphere Application Server),或者发布应用程序并重新启动服务器(如果正在运行 Tomcat)。 要在服务器上发布应用程序,您可以等待自动发布时间间隔耗尽,也可以手工发布应用程序(在“服务器”视图中右键单击服务器并选择发布)。有关自动或手动发布至服务器的更多信息,请参阅发布应用程序主题。当服务器在调试方式下运行热方法替换功能时,将自动识别对 Java 类所做的更改。
对于 WebSphere Application Server,服务器将动态重新启动 EAR 中的 EJB 项目。当服务器在调试方式下运行热方法替换功能时,将自动识别对 Java 类所做的更改。
对于 WebSphere Application Server,如果在企业应用程序项目正在服务器上运行时更改了该项目中的任何资源,那么服务器将自动重新启动 EAR。Tomcat 不支持企业应用程序项目测试和发布。
修改的资源 | 必需的操作 | |||
---|---|---|---|---|
WebSphere Application Server | Apache Tomcat 服务器 | WebSphere Application Server Express® | ||
无法刷新服务器配置, | 与独立 WebSphere Application Server 的行为相同;有关详细信息,请参阅 WebSphere Application Server 信息中心 | 重新启动服务器 | 重新启动服务器 | |
JSP | 刷新 Web 浏览器 | 刷新 Web 浏览器 | 刷新 Web 浏览器 | |
servlet | 启用重新装入 | 刷新 Web 浏览器 | 刷新 Web 浏览器 | 刷新 Web 浏览器 |
禁用重新装入 | 重新启动 EAR 项目或服务器 | 重新启动服务器 | 重新启动 EAR 项目或服务器 | |
相关类或部署描述符 | 启用重新装入 | 刷新 Web 浏览器 | 刷新 Web 浏览器 | 刷新 Web 浏览器 |
禁用重新装入 | 重新启动 EAR 项目或服务器 | 重新启动服务器 | 重新启动 EAR 项目或服务器 | |
EJB 实现 | 自动重新装入 | 不支持 | 不支持 | |
EJB 接口或接口的从属类 | 自动重新装入。如果应用程序客户机拥有对 EJB 的引用,那么重新启动应用程序客户机。 | 不支持 | 不支持 | |
EJB、相依类或部署描述符 | 自动重新装入 | 不支持 | 不支持 | |
添加了 EJB 或从属类 | 自动重新装入 | 不支持 | 不支持 | |
EAR 文件 | 自动重新装入 | 不支持 | 刷新 Web 浏览器 |