如何将应用程序与Java Service Wrapper 集成

当前有四种方法将Java应用程序与Java Service Wrapper集成。其中三个将直接使用,无需任何其他编码。

第一步是确定这四种方法中哪种最适合您的应用程序。简要概述了这四个选项后,我们将详细介绍如何使用每种方法集成应用程序。

集成方法1(WrapperSimpleApp)
集成方法2(WrapperStartStopApp)
集成方法3(WrapperListener)
集成方法4(WrapperJarApp)

集成方法1(WrapperSimpleApp)

方法1是使用WrapperSimpleApp帮助程序类启动该应用程序。到目前为止,这是与Wrapper集成的最简单方法,强烈建议在可能的情况下使用。

但是,使用此方法时需要注意一些事项。当包装程序关闭JVM时,不会直接调用应用程序以要求其完全关闭。而是,包装程序将通过从JVM内部调用System.exit()退出JVM。如果应用程序已经注册了自己的Shutdown Hook,它将被调用,使应用程序有机会彻底关闭。另一方面,如果 未注册关闭挂钩,则应用程序将突然退出,就像在控制台(命令窗口)中按CTRL-C时一样。两种情况,有无shutdown hook,提供与在没有包装程序的情况下运行应用程序完全相同的行为。

您可以使用简单的HelloWorld应用程序示例(Windows或Linux / UNIX)找到详细的概述和说明。

集成方法2(WrapperStartStopApp)

方法2是使用WrapperStartStopApp帮助程序类。此方法提供了一种与Tomcat之类的应用程序集成的方法,这些应用程序使用一个类启动,然后使用另一个类停止。

细节
通常,此类应用程序将在启动时打开服务器套接字,其工作是等待触发关闭的连接。当启动shutdown或stop类时,然后通过连接到应用程序触发关闭。

与方法1一样,包装程序通过使用start类启动应用程序,然后在需要关闭应用程序时调用stop类的main方法,从而 与此类应用程序一起工作。

您可以找到详细的概述和说明,以Tomcat为例(Windows或Linux / UNIX)。

集成方法3(WrapperListener)

方法3虽然提供了最大的灵活性并可以访问包装器的所有功能,但它也是唯一需要一些编码才能完成集成的方法。此方法涉及创建一个实现WrapperListener接口的类。然后,实例化用户类的实例并向WrapperManager注册。

细节
尽管此方法提供了前两种方法(WrapperSimpleApp或WrapperStartStopApp)都不 具备的功能,但确实增加了一些复杂性。这是唯一允许用户代码接收并直接响应系统控制事件以及启动和关闭过程的方法。

如果不需要附加功能,则应考虑实现一个Shutdown Hook来启用 方法1(WrapperSimpleApp)的使用,或者实现一个shutdown类。关闭类的主要方法可以很简单,就像在应用程序中调用关闭方法一样。

在大多数情况下,此附加控件不是必需的,因为方法1(WrapperSimpleApp) 和方法2(WrapperStartStopApp)帮助器类都通过在适当的时间启动和关闭应用程序来为您解决此问题。

您可以找到(平台无关)的详细概述和说明。

集成方法4(WrapperJarApp)

第四个也是最后一个方法是使用WrapperJarApp帮助程序类来启动应用程序。当应用程序已经配置为作为可执行jar运行时,这是与包装程序集成的另一种简单方法。

细节
但是 ,使用此方法时需要注意一些事项。当包装程序关闭JVM时,不会直接调用应用程序以要求其完全关闭。而是,包装程序将通过从JVM中调用System.exit()退出JVM。如果应用程序已经注册了自己的Shutdown Hook,它将被调用,使应用程序有机会彻底关闭。另一方面,如果 未注册“ 关机挂钩”,则应用程序将突然退出,就像按CTRL-C一样在控制台(命令窗口)中。两种情况(带有和不带有Shutdown Hook的情况)都提供了与应用程序在没有包装器的情况下运行完全相同的行为。

您可以找到详细的概述和说明,以JBoss EAP为例(Windows或Linux / UNIX)。

作者:Jeebiz  创建时间:2020-03-17 14:10
 更新时间:2024-01-08 11:42