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"/>
- ...
【编辑推荐】