Solaris 9 12/02 发行说明

受影响的文档: Sun ONE Application Server 7, Standard Edition Developer's Guide


注意:

此文档介绍如何使用索引的部署目录。


部署应用程序的目录名称的编号机制部分已经作为索引机制实现。此机制使得开发者能够修改与部署的应用程序关联的 JAR 或类文件,这对于 Windows 平台来说非常重要,因为 Windows 会为已加载的文件加上文件锁,因此如果试图覆写某个已加载的文件,就会发生共享冲突错误。在会话启动过程中,该文件会装入到服务器实例或 IDE 中。如果发生共享冲突错误,有两个选择:


注意:

由于 Solaris 平台上没有文件锁定限制,因此不需要在此平台上重新部署应用程序。


如果由于 IDE 设置、ANT 文件复制、编译或其他操作而需要更改 Windows 平台上已经部署的应用程序,请注意另一个变化:会创建一个带有递增索引编号的新目录,以解决文件锁定约束。例如,在 Solaris 平台上,J2EE 应用程序 helloworld 按照以下目录结构部署至 Sun ONE Application Server:

appserv/domains/domain1/server1/applications/j2ee-apps/helloworld_1

然后对这个部署的应用程序的某个 servlet(例如 HelloServlet.java)进行更改。Sun ONE Studio IDE 将启动,此 servlet 的源代码文件被更改和编译,并且 javac 目标被设置为上述目录。在正确的位置编译源代码后,此应用程序就会得到一个可重新装入的文件。server.xml 中的重新装入标记将被设置为 true,如果服务器实例在运行,那么不用重新汇编应用程序和重新部署,更改就会生效。

对于 Windows 平台,由于文件锁定问题,无法更改和更新 JAR 或类文件。因此,需要使用以下两种方法之一来解决此 Windows 问题:

第二种选择是首选方法,因为它将使用递增的索引编号,并将其附加到已部署应用程序的目录名中。第二次部署 helloworld 后,目录结构将具有以下形式:

appserv/domains/domain1/server1/applications/j2ee-apps/helloworld_1

appserv/domains/domain1/server1/applications/j2ee-apps/helloworld_2

helloworld 的第二次部署将部署在 helloworld_2下。