本文转自https://www.cnblogs.com/zcy_soft/p/3738947.html,写的非常好,珍藏一下

1. wrapper的意思?

 wrapper在此处理解为“包装”。

2.  java service wrapper的作用?

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

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

4. wrapper下载与使用

   https://wrapper.tanukisoftware.com/doc/english/download.jsp

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

如下图所示:

  为了更直观的了解Wrapper的目录及文件结构,可以通过"tree"命令列出Wrapper的所有文件树,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目录执行以下命令:

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

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

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

  

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

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

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

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

  两者的提示相同,都为:

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

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

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

运行wrapper可以按如上提示添加参数,如:./wrapper -c wrapper.properties

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

Java Service Wrapper简介与使用(转)的更多相关文章

  1. Java Service Wrapper简介与使用

    在实际开发过程中很多模块需要独立运行,他们并不会以web形式发布,传统的做法是将其压缩为jar包独立运行,这种形式简单易行也比较利于维护,但是一旦服务器重启或出现异常时,程序往往无法自行修复或重启.解 ...

  2. Java Service Wrapper 使用

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/sinat_26279177/article/details/70807173 1       简介 ...

  3. Java Service Wrapper 使用(windows)

    1       简介 最近项目中需要做一个Windows系统服务,记录一下使用过程. Java Service Wrapper 可以将Java程序包装成系统服务,这样就可以随着系统的运行而自动运行.J ...

  4. 使用 Java Service Wrapper 启动java后台进程服务

    Java Service Wrapper (http://wrapper.tanukisoftware.com/doc/english/product-overview.html)可以很方便得在各个平 ...

  5. java service wrapper 级别为info导致内存剧增直至溢出

    上周,公司某一环境发生java service wrapper内存剧增导致最后被自动killed的情况,经过分析,确定导致java service wrapper(后续简称wrapper)守护进程内存 ...

  6. 利用JAVA Service Wrapper把JAVA程序做成windows服务

    今天做了一个读取数据入库的程序.由于读取的数据每天都更新,于是就想把程序做成一个服务,每天定时执行.研究了一下,发现有几种方式可以做.下面我主要记录一下JAVA Service Wrapper方式. ...

  7. 利用Java Service Wrapper将java项目添加到windows服务中

    1.web项目,即tomcat/resin添加至window系统服务,步骤如下:第一步:找到tomcat的bin目录,如:D:\apache-tomcat-8.0.26\bin第二步:打开cmd,cd ...

  8. 使用Java Service Wrapper在Linux下配置Tomcat应用

    前言 Java Service Wrapper是Tanuki Software的一个产品,可以将Java应用注册成Windows或Linux服务,使其可以随系统开机启动,同时可以监控Java应用的状态 ...

  9. Java Service Wrapper

    Java Service Wrapper 将Java 应用程序部署成Windows系统服务Java Service Wrapper 1 Product Overview 1 Editions 2 Me ...

随机推荐

  1. webapi Model Validation 模型验证

    通常情况下,对于那些经常为别人提供数据接口的开发人员来说,对于调用方传递过来的参数都会有验证处理.例如: if (string.IsNullOrEmpty(entity.Name)) { //当姓名为 ...

  2. [转]使用WCF 4.0 构建 REST Service

    本文转自:http://www.cnblogs.com/lanvige/archive/2010/12/03/set_up_rest_service_with_wcf_4.html 用过一段时间的Ru ...

  3. Python WebDriver 文件上传(二)

    今天补充一种文件上传的方法 主要是因为工作中使用SendKeys方法不稳定,具体方法见: Python WebDriver 文件上传(一) 这种方法直接通过命令行执行脚本时没有问题,可以成功上传,但是 ...

  4. 微信公众开发URL和token填写详解

    微信公众开发URL和token填写详解 方法/步骤     作为一名微信公众号开发者,别人进入你的微信公众号,肯定会看见某些网页,或者给你发某些信息,你需要实时自动回复,所以你需要一个24小时为用户服 ...

  5. [leetcode] 11. Same Tree

    因为我刷题是难度不是按发布日期,所以就有可能遇到这种情况,比如这个... Given two binary trees, write a function to check if they are e ...

  6. 深度学习之TensorFlow的介绍与安装

    TensorFlow是一个采用数据流图(data flow graphs)用于数值计算的开源软件库.它最初是由Google大脑小组的研发人员设计开发的,用于机器学习和神经网络方面的研究.但是这个系统的 ...

  7. Mahout的taste里的几种相似度计算方法

    欧几里德相似度(Euclidean Distance) 最初用于计算欧几里德空间中两个点的距离,以两个用户x和y为例子,看成是n维空间的两个向量x和y,  xi表示用户x对itemi的喜好值,yi表示 ...

  8. [C#学习笔记]C#中的decimal类型——《CLR via C#》

    System.Decimal是非常特殊的类型.在CLR中,Decimal类型不是基元类型.这就意味着CLR没有知道如何处理Decimal的IL指令. 在文档中查看Decimal类型,可以看到它提供了一 ...

  9. 浅析Object基类提供的Equals方法

    当我们去查看object.cs源代码文件的时候,会发现object基类提供了三种判断相等性的方法.弄清楚每种方法存在的原因,也就是具体解决了什么问题,对我们理解.net判断对象相等性的逻辑很有帮助,下 ...

  10. .net core 自制错误日志

    前言 之前.net framework用的ErrorLog帮助类,对于监控错误形成日志,内容非常清晰,想在.net core2.2中继续用,但是有很多不一样的地方,所以想总结一下. 首先需要HttpC ...