绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
Java Service Wrapper这种上古神器用过没?
2019-12-04 16:14:39

作者:g21121

来源:https://www.iteye.com/blog/286-1915478

在实际开发过程中很多模块需要独立运行,他们并不会以web形式发布,传统的做法是将其压缩为jar包独立运行,这种形式简单易行也比较利于维护,但是一旦服务器重启或出现异常时,程序往往无法自行修复或重启。解决服务器重启的传统做法是编写一段shell脚本随服务器启动而运行,但是这样做只是治标,那么我们想寻求一种“治本”的方式该怎么办呢?

Java Service Wrapper就轻松而简单的为我们解决了这些问题。"Java Service Wrapper"顾名思义,将我们的Java程序包装成系统服务,这样就可以随着系统的运行而自动运行,当然Java Service Wrapper(下面简称Wrapper)的功能绝不仅于此。

Wrapper下载地址:http://wrapper.tanukisoftware.com/doc/english/download.jsp

通过下载页面我们可以看到Wrapper几乎支持所有的系统环境,说明Wrapper在这方面还是很下工夫的,目前新版本为3.5.20,我们选择Linux x86版本下载,解压后目录组成如下图所示:

为了更直观的了解Wrapper的目录及文件结构,可以通过"tree"命令列出Wrapper的所有文件树,cmd控制台下输入命令:

Cmd代码

以下是官方给出的一些Wrapper的优点:

(1) 使用我们的产品无须在你的程序中添加任何额外的代码。

(2) 当你的程序或JVM出现问题时会自动响应事先定制的策略。

(3) 当出现问题时会及时进行通知。

(4) 完善的日志记录功能可以更好为您提供支持。

(5) 在不同的系统上你可以指定一个标准的流程相同流程,也就是说相同的程序可以不必修改即运行于不同系统。

(6) 可以将你的应用安装成windows或unix的服务或守护进程。

看到Wrapper有这么多好处,那么我们就通过Wrapper自带的示例程序来进一步了解Wrapper吧:

1.创建服务工作目录,以操作系统为Linux,目录结构为usr/local/wrapper为例,按照上面的目录结构,在其下创建"bin","conf","lib","logs"这四个相同名称的文件夹。

2.将配置及程序文件复制至相应目录(也就是上面标★的文件);

(1)bin 目录下的wrapper 文件复制到usr/local/wrapper/bin下。

(2)src\bin 目录下的sh.script.in 文件复制到usr/local/wrapper/bin下,并将.in后缀名删除并修改名称,修改后为javaService.script。

(3)conf 目录下的wrapper.conf 文件复制到usr/local/wrapper/conf下。

(4)lib 目录下的wrapper.jar 和libwrapper.so 文件复制到usr/local/wrapper/lib下。

注:

以上是正式环境所需文件的配置方式,这里我们需要运行Wrapper自带的demo程序,所以需要将demoapp,demoapp.conf,wrapperdemo.jar 这三个文件复制到相应目录。

3.进入bin目录执行以下命令:

Shell代码

./demoapp start

接下来会显示很多提示,终显示如下页面:

出现此页面证明你的程序已经运行成功了,恭喜!

如果启动失败,我们可以查看logs日志内容,如下:

Log代码

从日志内容可以查看程序及服务的运行状态,Wrapper日志采用此种格式:类型 | 拥有者 | 时间 | 具体内容

日志内容显示我们的Linux系统没有安装图形界面或者根本没有显卡。

注:这里需要说明一下,Wrapper运行首先需要Java运行环境支持,所以在使用Wrapper前请先确认已安装好了Java。

下面我们来尝试一下无参数调用服务的方式,如:

Shell代码

./testwrapper

./demoapp

两者的提示相同,都为:

Shell代码

原来Wrapper提供了很多种参数的选择,如:start为启动,stop为停止。下面为参数的详细解释:

Shell代码

我们还发现单独运行wrapper命令时的提示内容与前面两者不同,如下所示:

Shell代码

因为wrapper是Wrapper运行的主程序也是核心,他无法单独运行需要通过src/bin中的sh.script.in这个shell脚本调用,这个文件的使用我们之后会讲到。

运行wrapper可以按如上提示添加参数,如:

./wrapper -c wrapper.properties

以上就是对Wrapper的一个整体认识,希望此文可以帮助大家更快的上手并使用Wrapper,之后几篇文章会详细讲解Wrapper的配置及定制自己的应用。

分享好友

分享这个小栈给你的朋友们,一起进步吧。

JAVA玩具小屋
创建时间:2019-08-16 16:54:49
分享程序开发方面的小经验,思考一些比较简单易懂的技术问题
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

栈主、嘉宾

查看更多
  • Yios5092
    栈主

小栈成员

查看更多
  • 栈栈
  • coyan
  • 25minutes
  • ?
戳我,来吐槽~