安装及使用 java wrapper service 

一.从http://wrapper.tanukisoftware.org/doc/english/download.jsp 

    下载 wrapper-linux-x86-64-3.5.45.tar(请使用Community版本,因Professional和Standard版本需要购买Licenses);

javasctipt form 自动执行_jar

下载是个 压缩包 wrapper-linux-x86-64-3.5.45.tar.gz

 二、解压缩后 如图:

 

javasctipt form 自动执行_linux_02

三、在windows上 创建一个名为 app 目录 ,在这个目录下 再建  bin,conf,lib,logs  四个目录

四、复制文件 至 app 目录下

       1. 拷贝  wrapper-linux-x86-64-3.5.45\bin\wrapper(为二进制文件) 到  app\bin\ 目录下

       2.拷贝  wrapper-linux-x86-64-3.5.45\src\bin\sh.script.in  到  app\bin\ 目录下 并改名为 app.sh (注:将 .in 去掉 )

                   将自己编写的 java程序用到的配置文件都拷贝到该目录下 包括.ini,.xml;

       3.拷贝 wrapper-linux-x86-64-3.5.45\src\conf\wrapper.conf.in  到   app\conf\目录下  并改名为wrapper.conf (注:将 .in 去掉 )

       4.拷贝 wrapper-linux-x86-64-3.5.45\lib\wrapper.jar,libwrapper.so 到 app\lib\目录下 

                  将自己编写的 java程序,及用到的jar包也拷贝到该目录下 

        如图  app目录

       

javasctipt form 自动执行_linux_03

       app\bin 目录

     

javasctipt form 自动执行_java_04

      app/conf 目录

 

javasctipt form 自动执行_linux_05

     app/lib 目录  SinaServer.jar 是自己编写的java程序,其它四个.jar是从 wrapper压缩包中复制过来的。

    

javasctipt form 自动执行_jar_06

    app/logs 目录    这个目录运行前是空的  wrapper.log 是 wrapper 自动创建的日志

javasctipt form 自动执行_linux_07

五. 配置 app.sh , 设置应用程序的名称等(编辑时请使用NotePad2或EditPlus) 打开app.sh搜索  APP_NAME=  

# Application
APP_NAME="MailSender"
APP_LONG_NAME="MailSender Application"

javasctipt form 自动执行_java_08

六. 配置 wrapper.conf

# Java Application

# Locate the java binary on the system PATH:
#wrapper.java.command=java
# Specify a specific java binary:
#set.JAVA_HOME=/java/path
wrapper.java.command=%JAVA_HOME%/bin/java

# Java Main class.  This class must implement the WrapperListener interface
#  or guarantee that the WrapperManager class is initialized.  Helper
#  classes are provided to do this for you.  See the Integration section
#  of the documentation for details.
wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp #默认使用

# Java Classpath (include wrapper.jar)  Add class path elements as
#  needed starting from 1

wrapper.java.classpath.1=../lib/wrapper.jar
wrapper.java.classpath.2=../lib/classes12.jar  #其它引入jar
wrapper.java.classpath.3=../lib/activation.jar #其它引入jar
wrapper.java.classpath.4=../lib/mail.jar       #其它引入jar
wrapper.java.classpath.5=../lib/App.jar        #当前应用jar

# Java Library Path (location of Wrapper.DLL or libwrapper.so)
wrapper.java.library.path.1=../lib #Windows 版本使用Wrapper.DLL,Linux版本使用libwrapper.so

# Application parameters.  Add parameters as needed starting from 1
wrapper.app.parameter.1=com.wisdom.mail.Main #app应用启动类

#********************************************************************
# Wrapper Windows Properties
#********************************************************************
# Title to use when running as a console
wrapper.console.title=AppName Application

javasctipt form 自动执行_java_09

我用的是 %JAVA_HOME%/bin/java  环境变量 

javasctipt form 自动执行_java_10

没变,使用默认

javasctipt form 自动执行_jar_11

SinaServer.jar为自己编写的程序 

javasctipt form 自动执行_jar_12

没变,使用默认 

javasctipt form 自动执行_linux_13

在IDEA中

javasctipt form 自动执行_linux_14

 

javasctipt form 自动执行_java_15

 七、将 app目录(包括目录下所有文件)  上传 到   linux   服务器的   /usr/local  下

javasctipt form 自动执行_linux_16

 

javasctipt form 自动执行_jar_17

八、分别执行 下面命令    目的:赋于 权限

chmod 755 /usr/local/app

cd /usr/local/app/bin

sudo chmod 755 app.sh

sudo chmod 755 wrapper

javasctipt form 自动执行_linux_18

 注:sudo chmod 755 app.sh  这句  app.sh 一定要加  .sh

九、启动服务

如果要检查服务是否执行正常,可先使用console参数,如果正常就可以使用start来启动服务了

先执行检查

/usr/local/app/bin/app.sh console  

javasctipt form 自动执行_jar_19

启动服务

/usr/local/app/bin/app.sh start

javasctipt form 自动执行_java_20

 PID:2354   为程序运行的 ID

查看当前现在执行的 java 进程

ps -ef | grep java

javasctipt form 自动执行_linux_21

 下面是  app.sh 的参数

/usr/local/app/bin/app.sh [ console | start | stop | restart | condrestart | status | install | remove | dump ]

Commands:
  console      Launch in the current console.
  start        Start in the background as a daemon process.
  stop         Stop if running as a daemon or in another console.
  restart      Stop if running and then start.
  condrestart  Restart only if already running.
  status       Query the current status.
  install      Install to start automatically when system boots.
  remove       Uninstall.
  dump         Request a Java thread dump if running.

十、我在部署时,遇到的问题及解决方法

1.目录不对

javasctipt form 自动执行_jar_22

linux的命令  

   cd ..    返回上一级目录  注意 cd 后面有个 空格

   ls        查看目录下的所有文件

2.没有 赋于 权限  

javasctipt form 自动执行_jar_23

 解决方法:重新 执行 第 八 步

3. app.sh 的执行 参数  不能 同时执行多个 ,应分开执行 如:    /usr/local/app/bin/app.sh console

javasctipt form 自动执行_java_24

 4. \bin\logs 目录没有 创建

javasctipt form 自动执行_linux_25

 

javasctipt form 自动执行_linux_26

5.自己编写的 Java程序 放错位置。 (注:Java程序所用到的 所有 .jar 也应放到这个目录下 )

 应  放到  /app/lib/ 目录下 

javasctipt form 自动执行_java_27

 

javasctipt form 自动执行_java_28