Java Service Wrapper 简介
1、什么是 Java Service Wrapper ?
Java Service Wrapper 使Java应用程序可以作为 Windows Service 或 UNIX Daemon 运行。它还监视您的 Application 和 JVM 的运行状况。
官方地址:https://wrapper.tanukisoftware.com
1.1、功能概述
Java Service Wrapper是出于解决许多Java应用程序常见的许多问题而发展而来的应用程序。包装器的功能如下:
- 将Java应用程序作为Windows服务或UNIX守护程序运行
Java Service Wrapper可以将Java应用程序安装为 Windows Service。同样,包装程序附带的脚本也使在UNIX系统上将Java应用程序作为守护进程安装起来非常容易。
包装程序可以正确处理Windows下的“用户注销”,服务依赖性以及运行与桌面交互的服务的功能。包装程序可以正确处理Windows下的“用户注销”,服务依赖性以及运行与桌面交互的服务的功能。
- Java应用程序可靠性
随着Java用途的扩展,您的应用程序已编写为提供各种任务和关键服务。这些服务必须能够提供高度的可靠性。在理想的世界中,只有100%无错误的软件才会发布和安装。但是,历史表明情况并非如此。几乎每个应用程序在生命周期中的某个时刻都会遭受质量问题。应用程序挂起,崩溃,内存不足或遭受许多问题困扰。在可能的情况下,可以快速解决问题,而不会造成大量服务中断。但是有时候
包装程序监视JVM(Java虚拟机)进程,并在JVM崩溃或挂起时自动重新启动它。包装器确定存在问题后,此过程仅需几秒钟。还有一种方法可以将Wrapper配置为监视JVM的控制台输出,并通过重新启动或关闭JVM来响应某些字符串。
尽管Java Service Wrapper的这些高级功能并不能解决所有问题,但它们可以帮助您更轻松地入睡,因为知道有问题时,Wrapper会在那里保持运转和运行,直到您可以进入办公室。检查日志。告别那紧急电话!!
- 标准,开箱即用的脚本
编写一次运行到处配置。Java已作为“一次编写,随处运行”编程语言进行销售。尽管对于应用程序的许多方面都是如此,但是开发人员经常不得不编写复杂的,特定于平台的脚本,这些脚本的任务是建立类路径并收集启动应用程序所需的其他系统信息。
Java Service Wrapper通过为广泛的平台提供一组脚本来减轻开发人员的繁琐任务,这些脚本可以直接用于启动和运行由Wrapper控制的任何Java应用程序。
包装程序将所有JVM(Java虚拟机)配置移至与平台无关的配置文件 wrapper.conf中。有关详细信息,请参见“ 集成方法摘要”部分中的示例。
- 按需重启
Java Service Wrapper为Java应用程序提供了一种请求重新启动其自己的JVM(Java虚拟机)的方法。在许多情况下这可能很有用。修改了配置文件后,应用程序可能希望重新启动。或者可能只是需要重新启动应用程序,以避免出现某种内存问题或资源泄漏。
可以通过调用WrapperManager.restart()从JVM内部触发JVM重新启动 。见WrapperManager.restart() 中的JavaDoc了解更多详情。
还有更多被动方式来触发重新启动。包装程序可以监视控制台输出, 并在检测到某些文本时触发关闭或重新启动。
还可以将包装程序配置为重新启动另一个JVM实例或正常关闭, 具体取决于 JVM返回的退出代码。
- 灵活的配置
Java Service Wrapper提供了广泛的配置属性,可用于通过命令行以任何可能的方式配置JVM(Java虚拟机)。包装器配置文件“ wrapper.conf ”还提供了许多属性,使您可以配置日志记录 以及包装器作为服务的安装方式。
- 简化应用程序安装
通过使用Wrapper的标准脚本以及配置文件wrapper.conf中的相对路径, 通常可以创建一个应用程序,该应用程序不需要简单地将存档文件扩展到用户选择的目录中而进行进一步的复杂安装。
- 日志记录
尽管Java Service Wrapper不会尝试也不应该替换任何可用的出色的日志记录工具,但它确实提供了许多属性来配置“ stdout ”和“ stderr ”如何输出到JVM(Java虚拟机)控制台被处理。可以将此输出记录到控制台,文件或“事件日志”(Windows)或“ syslog”(UNIX)的任何组合中。
将输出记录到JVM控制台 对于跟踪应用程序问题至关重要。没有包装程序,当JVM作为Windows下的Service或UNIX下的Daemon运行时,控制台输出通常会丢失。包装器确保记录所有控制台输出。
基于Java的日志记录工具仅能够记录从JVM内部生成的输出。如果JVM崩溃或打印出低级消息(例如线程转储),则通常无法记录它。包装器记录JVM进程的所有控制台输出,无论其来源如何,这意味着即使包装器重新启动JVM后,任何崩溃的记录也将保留。
1.2、各版本特征
特征 | 说明 | 专业版 | 标准版 | 社区版 |
---|---|---|---|---|
能够作为Windows服务运行 | Java Service Wrapper使您可以在几分钟之内轻松地将几乎所有Java应用程序转换为Windows Service,而无需您进行额外的开发。工具包含在我们的产品中。 | √ | √ | √ |
能够作为UNIX守护程序运行 | 您可以将Java应用程序安装为UNIX守护程序,而无需进行其他开发。我们提供的工具允许您以几种UNIX和Linux风格安装它。 | √ | √ | √ |
无代码集成 | Java Service Wrapper可以直接使用。我们最简单的集成方法不需要在Java应用程序中进行任何其他编码。 | √ | √ | √ |
从JVM捕获并记录所有控制台输出 | Java Service Wrapper允许您捕获Java应用程序的所有输出。这样可以更轻松地进行故障排除并为您的客户提供更好的支持。 | √ | √ | √ |
使用通配符的灵活类路径配置 | Java Service Wrapper使您可以更轻松地部署Java应用程序,因为可以使用通配符来包含不同类型的文件,这在使用不同的操作系统和平台时很常见。 | √ | √ | √ |
自定义工作目录 | Java Service Wrapper允许您更改工作目录,该目录是Wrapper配置文件或应用程序中引用的所有相对路径的基本位置。无论您的JAR文件和Wrapper二进制文件的位置如何,更改工作目录对于简化相对路径或使其对于Java应用程序而言都是恒定的很有用。 | √ | √ | √ |
JVM监视和重新启动功能 | Java Service Wrapper允许您监视JVM的运行状况,并根据事件或Java应用程序的触发按需重新启动它。 | √ | √ | √ |
单实例执行 | Java Service Wrapper可以强制Java应用程序在任何时间点只有一个实例可以运行。 | √ | √ | √ |
控制流程优先级的能力 | Java Service Wrapper可以控制Java Application优先级以获得更好的性能。 | √ | √ | √ |
触发的JVM关闭,重新启动和线程转储 | Java Service Wrapper允许通过Java Application或事件触发JVM关闭和重新启动。您还可以在需要时获得线程转储,以简化调试或为客户提供更好的支持。 | √ | √ | √ |
挂起/恢复JVM超时 | Java Service Wrapper允许您暂停JVM监视引擎使用的所有超时,以防您的应用程序需要执行长时间的阻塞任务。挂起/恢复请求可以使用我们的API从Java代码发出,也可以从命令文件发出,也可以在wrapper.conf文件中配置为操作。 | √ | √ | × |
完全本地化的Java Service包装器 | Java Service Wrapper支持英语,日语和德语。 | √ | √ | × |
进阶编码功能 | 根据操作系统,JVM版本或其实现的不同,可以将Java代码或标准I / O流中使用的默认编码解析为不同的值。Java Service Wrapper提供了一种简单而有效的方法来确保您的应用程序始终对所有JVM使用相同的编码。它还执行几种类型的验证,例如检查编码可用性以及确认与当前语言和平台的兼容性,如果已知编码会导致问题,则这将阻止应用程序启动。 | √ | √ | × |
自动Java线程死锁检测和响应 | Java Service Wrapper可以检测Java应用程序中的死锁,并在发生这种情况时执行操作,例如重新启动JVM。 | √ | √ | × |
作为服务运行时设置Windows映射的驱动器 | 当作为Windows服务运行时,Java Service Wrapper可以自动映射网络驱动器。 | √ | √ | × |
能够从所有平台登录到远程系统日志服务器 | Java Service Wrapper可以使用UNIX和某些Windows平台中广泛使用的rsyslog进行远程日志记录。 | √ | √ | × |
相对内存限制 | Java Service Wrapper可以使用百分比值将内存分配给Java应用程序。 | √ | √ | × |
无控制台二进制文件(Windows) | Java Service Wrapper包含一个 不带控制台的特殊二进制文件,当您希望将Java应用程序作为Windows Service运行时,这很有用。 | √ | √ | × |
可自定义的图标(Windows) | 通过将Java Service Wrapper与我们的产品捆绑在一起,您可以更改我们产品中的默认Windows图标,从而更好地进行品牌推广。 | √ | √ | × |
可自定义的启动画面(Windows) | Java Service Wrapper允许您在运行我们的产品时更改默认启动屏幕,以便在将其与Java应用程序捆绑在一起时更好地进行品牌宣传。 | √ | √ | × |
可定制的对单模式下第二次调用的响应(Windows) | 如果指定了单个调用模式 ,则Java Service Wrapper允许您自动聚焦应用程序的窗口,而不用启动第二个实例。您还可以通过处理每次启动第二个实例时触发的事件来执行自定义操作。 | √ | √ | × |
能够将配置嵌入包装器二进制文件中 | Java Service Wrapper允许您将配置属性嵌入其二进制文件中,以便可以轻松地进行部署和分发。可以将这些属性最终嵌入,以防止更改配置文件,从而在敏感配置上提供更高的安全性,或者可以正常嵌入以允许在某些平台或特定使用情况下进行覆盖。 | √ | √ | × |
控制用于事件和日志输出的时区 | Java Service Wrapper允许您更改事件和日志记录的时区,以简化管理和调度。 | √ | √ | × |
配置服务恢复(Windows) | 当您将Java应用程序安装为Windows服务时,Java Service Wrapper使用Windows平台中可用的Windows服务管理来检测错误并从中恢复。 | √ | √ | × |
能够设置用户定义的动作和事件 | Java Service Wrapper允许您根据JVM中发生的事件安排事件或运行操作。 | √ | √ | × |
带有日志快照的警报电子邮件 | 当Java应用程序出现问题时,Java Service Wrapper可以向您发送电子邮件,并附上日志快照以了解发生了什么,并为您提供工具以为客户提供更好的技术支持。 | √ | √ | × |
事件命令 | Java Service Wrapper允许您执行外部命令以响应某些事件。 | √ | √ | × |
定时事件 | Java Service Wrapper提供了使用计时器安排许多操作的功能。 | √ | √ | × |
低内存子进程创建 | Java Service Wrapper允许您使用替代方法来创建子进程,以最大程度地减少内存消耗。 | √ | √ | × |
子流程管理 | Java Service Wrapper 允许管理Java应用程序使用的所有子进程并对其进行控制。 | √ | √ | × |
处理器亲和力 | Java Service Wrapper 允许为其基础进程以及受控JVM进程配置处理器亲和力。 | √ | √ | × |
服务权限 | Java Service Wrapper 允许您查询和编辑授予Windows服务或任何相关服务上的用户或组的权限。 | √ | √ | × |
1.3、目录结构
目录 | 说明 | 信息 |
---|---|---|
bin | ||
conf | ||
lib | ||
logs | ||
src |
更新时间:2024-01-08 11:42