如何将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"/>
   ...

【编辑推荐】

  1. 在Glassfish上部署web应用
  2. Sun发布基于GlassFish的开源网络平台
  3. 51CTO现场报道:GlassFish和JavaEE的未来
  4. 在GlassFish v3中实现Rails和javaEE的整合
  5. GlassFish和MySQL社区共同发布新的软件包
责任编辑:yangsai 来源: GlassFish官方文档
相关推荐

2009-06-17 17:16:18

Glassfish安装Windows系统服务

2012-11-12 14:22:17

Windows Ser

2020-07-22 10:40:14

算法知识产权CIO

2021-11-24 15:20:04

FreeDOSLinux

2020-05-11 17:35:57

vue开发组件

2010-10-18 15:46:45

Oracle

2023-03-03 12:14:30

2012-06-19 10:22:16

Windows Pho

2020-04-30 08:00:00

WSLWindows 10Linux

2022-11-09 11:01:11

Linux命令后台

2022-05-23 08:00:00

Windows 11虚拟机操作系统

2021-11-18 08:00:00

Windows 11Windows微软

2017-05-25 15:14:36

2019-10-17 09:45:02

照片SD卡Windows 10

2019-03-12 09:46:33

程序Windows 10启动

2019-11-18 10:40:00

Windows 10Windows 10 无线显示器

2021-02-22 11:35:55

Windows编程开发

2020-05-25 07:00:58

Raspberry PWeb服务器

2015-03-20 13:40:17

2012-10-29 09:27:16

点赞
收藏

51CTO技术栈公众号