日期:2014-05-17  浏览次数:20849 次

如何将GlassFish作为Windows服务运行
    本文档来自GlassFish官方网站,详细介绍了将 GlassFish 作为 Windows 服务运行设置方法。

Glassfish 附带一个名为 appservService.exe 的 Windows 可执行文件,它可与 Windows 服务控制器通信。其工作方式类似于 Java Service Wrapper 等程序。您为 Glassfish 创建的 Windows 服务使用几个参数来启动 appservService.exe,这些参数告知它在启动和停止时要执行哪些 asadmin 命令。

Glassfish 并未附带可为 appservService.exe 轻松创建 Windows 服务的工具,但是 Sun Java Application Server 9.x 的安装程序有一个 "Install as a Windows service" 复选框。如果您要为 Glassfish 创建 Windows 服务,则该说明中给出了可从命令提示符运行的一个相当大的命令。如果 Glassfish 安装路径包含空格,例如 C:\Program Files\Sun\GlassfishV2
uff0c那么查找正确方法对转义字符进行转义就变得复杂而不是快速了。

GlassfishSvc.jar

Ryan de Laplante 提供了一个简单的命令行工具,通过它可以轻而易举地创建 Windows 服务。下载 GlassfishSvc.jar(源代码),并将其复制到 Glassfish 安装路径(例如 C:\Program Files\Sun\GlassfishV2
uff09,然后从命令行运行以下命令:

C:\Program Files\Sun\GlassfishV2>java -jar GlassfishSvc.jar -i 

glassfishsvc v1.0 (Aug 19 2007)

Service name : GlassfishAppServer Glassfish installation path : C:\Program Files\Sun\GlassfishV2 Glassfish domain : domain1 Glassfish admin username : admin

Installing service... Done.-i 参数将使用默认选项安装服务。命令行参数的完整列表如下:

glassfishsvc v1.0 (Aug 19 2007)

DESCRIPTION: Installs and uninstalls a Windows service for Glassfish

USAGE: java -jar glassfishsvc.jar [-i | -u] [OPTIONS]

-i??????? Installs a Windows service for Glassfish. -u??????? Uninstalls a Windows service for Glassfish. -n name?? Name for the Windows service. Use double quotes around names that contain spaces.? Defaults to GlassfishAppServer. -d path?? Directory where Glassfish is installed. Use double quotes around paths with spaces, and escape back slashes. Defaults to current directory. -m domain Name of the Glassfish domain to start and stop. Defaults to domain1. -a user?? Glassfish admin user name.? Defaults to admin. -p pwd??? Glassfish admin password.? A password.txt file will be created in the Glassfish install directory containing the password in plain text, and the Windows service will be configured to read from it. This is usually not necessary. If no password is passed in, the password.txt file will not be created.

EXAMPLES: java -jar glassfishsvc.jar -i java -jar glassfishsvc.jar -i -p adminadmin java -jar glassfishsvc.jar -i -n MyServiceName -d "C:\\Program Files\\Sun\\Glassfish" -m myDomain -a admin5 -p secretpwd java -jar glassfishsvc.jar -u java -jar glassfishsvc.jar -u -n MyServiceName

AUTHOR: Ryan de Laplante ﹤ryan at ijws dot com>

群集配置文件

如果您安装了 Glassfish 群集配置文件,则 Glassfish 会在服务启动时询问管理员密码。要避免询问此问题,请在安装服务时使用 -p 选项。在 Glassfish 根目录中将创建 password.txt 文件,其中包含纯文本形式的密码。Windows 服务将配置为使用此文件,以便它可以在无人参与的情况下启动。您应该确保在此文件创建后对其配置相应的 NTFS 安全性,以便未授权用户对它没有读取或写入访问权限。

Windows 用户注销

默认情况下,JVM 可以捕获来自 Windows 的指示 OS 正在关闭或用户正在注销的信号,并正常地自行关闭。这意味着,一旦用户从 Windows 中注销,Glassfish 服务便会关闭。这有违于使用 Windows 服务的初衷,因此需要使用 -Xrs JVM 选项关闭此 JVM 功能。

打开 ﹤GF_HOME>\domains\domain1\config\domain.xml 文件,并查找含有大量 ﹤jvm-options>某个 JVM 选项﹤/jvm-options> 行的部分。在该部分中添加以下行:

﹤jvm-options>-Xrs﹤/jvm-options>

保存并关闭 domain.xml。如果 Glassfish 服务已在运行,请重新启动它以使更改生效。

注意:有报告指出,在某些 Windows 2003 Server 安装中将 -Xrs jvm-option 添加到 domain.xml 无法解决此问题。所报告的解决方案是将 jvm 选项添加到 ﹤GF_HOME>\lib\processLauncher.xml:

﹤process name="as9-server">
...
﹤sysproperty key="-Xrs"/>
...