Java Service Wrapper实践

 

好久前就使用JAVA写了一个后台服务器,基于MINA框架的。而且一直部署运行于服务器中,固然有一个黑框框。java

就正常运行而言,此种运行方式没有任何问题。linux

可是就这运行期间出现的一些问题:windows

1,服务器问题重启后,每次都要登陆远程将服务器打开,即便我已经配置了开机自启动,可是因为黑框框是基于界面运用的,每次必需要完成系统启动画面以后该黑框框才能启动。因此即便设置成了开机自启动,每次服务器维护重启后,都须要登陆一下远程出发系统加载。服务器

2,有个黑框框总显低端些,而且容易不当心被关闭。app

基于以上问题,加之之前就对Java Service Wrapper有所涉猎,但并未实践,因此利用一点时间来将服务器打包成WINDOWS NT服务。框架

关于Java Service Wrapper的介绍在此就不鳌诉了,http://wrapper.tanukisoftware.com/doc/english/download.jsp jvm

本人最简单的了解,就是将JAVA应用打包成标准的WINDOS(固然也包含linux,在此仅以windows为例)服务。jsp

Java Service Wrapper的Standard,Professional版本是须要license的,通俗的说是要收费,可是Community版本不须要,至于版本之间的区别我想对我影响不大,因此没有深究。就用Community版本吧。 性能

下载下来后解压: 动画

图一

我现有的项目很简单:

图二

server-server-1.0.0-release.jar是还行文件,libs/下是运行时所须要的依赖包,log是日志保存目录,conf是配置文件目录。

要使用Java Service Wrapper首先须要

(1)将图一中lib目录下的wrapper.dll、wrapper.jar拷贝到图二中的libs下。

(2)将图一中bin目录下的wrapper.exe文件拷贝到图二中当前目录下,该文件是将java应用打包成对应平台服务的可执行文件

(3)将图一中src/conf目录下的wrapper.conf.in文件拷贝到图二中conf下并将.in后缀去掉,wrapper.conf.in文件是一个标准的配置模板,用来配置Java Service Wrapper的,配置的内容就是项目目录结构、依赖关系、启动、jvm性能、日志、异常处理等等,稍微看一下应该就很容易理解。

(4)将图一中src/bin目录下的AppCommand.bat.in文件拷贝到图二中的当前目录下并将.in后缀去掉。该文件是一个基于命令行的可执行文件,能够用于对相应的服务执行start,install,uninstall,pause,resume,stop等命令。

完成以上操做后,个人项目目录以下:

具体目录结构:

+conf

  -wrapper.conf

+libs

  -wrapper.dll

  -wrapper.jar

+log

AppCommand.bat

server-server-1.0.0-release.jar

wrapper.exe

接下来也是最重要的一步就是配置wrapper.conf文件

主要修改的有如下几点;

(1)类加载路径Java Classpath

# Java Classpath (include wrapper.jar)  Add class path elements as
#  needed starting from 1
wrapper.java.classpath.1=server-server-1.0.0-release.jar
wrapper.java.classpath.2=libs/wrapper.jar

(2)动态库加载路径Java Library Path

# Java Library Path (location of Wrapper.DLL or libwrapper.so)
wrapper.java.library.path.1=libs

(3)须要运行的应用主类以及启动参数Application parameters

wrapper.app.parameter.1=cn.iever.wxh.yjserver.server.App     //个人应用主类
wrapper.app.parameter.2=-h120                                          //应用参数

 (4)日志输出文件Log file to use for wrapper output logging.

# Log file to use for wrapper output logging.
wrapper.logfile=log/wrapper.log

 (5)服务描述Wrapper Windows NT/2000/XP Service Properties

# Name of the service
wrapper.name=SmartHome

# Display name of the service
wrapper.displayname=Smart Home Service

# Description of the service
wrapper.description=Yong Jing Smart Home Service

wrapper的配置文件模板中给出的其余配置我基本采用默认,尚未深刻去对各个配置信息进行研究,可是以上配置已经能够基本符合个人需求。

接下来须要修改一下AppCommand.bat文件

主要将文件内容中的set _WRAPPER_CONF="conf/%_WRAPPER_BASE%.conf"进行修改,即设定配置文件因此在路径。

 

到此一切准备工做以及配置也都完成了。

打开cmd执行AppCommand.bat install命令安装服务

同时相应的服务咱们已经能够在系统服务中查询到

 

同理咱们执行AppCommand.bat stop/remove/pause等命令也均可以对该服务进行操做,固然也能够执行在系统服务中对服务进行操做。

 

至此我就使用Java Service Wrapper将个人java应用打包成了后台服务。

固然实践是完成了,关于Java Service Wrapper还有其余一些东西须要继续深刻研究 尤为是关于wrapper.conf文件的配置。。

相关文章
相关标签/搜索