Wrapper配置详解及高级应用

您所在的位置:网站首页 英伟达oawrapper占用内存 Wrapper配置详解及高级应用

Wrapper配置详解及高级应用

2024-07-11 21:51| 来源: 网络整理| 查看: 265

  将一个简单的程度如HelloWorld 的应用包装秤Wrapper 服务并不复杂,甚至可以认为非常简单。但是实际项目应用过程中我们的程序一般较庞大,运行环境也较复杂。

        通过Wrapper 配置文件的分析与配置进一步了解构建Wrapper 服务需要注意的关键点及重要部分。

首先,打开conf 文件夹下的wrapper.conf配置文件,此配置文件时Wrapper 的主配置文件也是关键配置文件,下面开始一项一项的开始分析。

 

        1.文件编码及子配置文件         文件头部包含了配置文件编码格式,子配置文件等相关信息,如下所示:

#文件编码,每个配置文件起始位置必须指定该文件的编码格式 encoding=UTF-8 # 如果包含配置文件出现问题可以使用debug调试模式,去掉一个"#",格式为#include.debug #include.debug # 包含子配置文件,可以是配置信息也可以是许可信息 include ../conf/wrapper-license.conf include ../conf/wrapper2.conf # 是否开启许可文件debug模式 wrapper.license.debug=TRUE

 

 

        通过子配置文件的配置可以使主配置文件关联最多10级子配置,例如:wrapper.conf 包含 wrapper2.conf ,wrapper2.conf 包含wrapper3.conf ..... wrapper9.conf 包含wrapper10.conf,文件结构如下:

wrapper.conf |-wrapper2.conf |-wrapper3.conf ..... |-wrapper9.conf |-wrapper10.conf

 

        也就是说配置文件嵌套层级最大可达10级,引用一张官方图片可以很好的说明:

        如果子配置文件不存在时,那么它将被忽略,不会导致程序运行错误。

 

 

        2.Wrapper 语言设置

        通过这两项的设置可以指定Wrapper 的语言种类,可以在Wrapper 官网下到这些语言包支持,目前不支持中文。

# 指定Wrapper语言,默认使用系统语言 wrapper.lang=en_US #指定Wrapper 语言资源位置,如果该文件不存在则默认设置为en_US wrapper.lang.folder=../lang

 

 

        3.Wrapper Java 相关属性配置

        (1)java运行环境设置

# Java 程序配置: # (1)默认使用PATH环境变量配置信息则使用下列配置形式 wrapper.java.command=java # (2)如果想单独配置运行程序,则可采用此种配置方式 set.JAVA_HOME=/java/path wrapper.java.command=%JAVA_HOME%/bin/java # java程序日志级别 wrapper.java.command.loglevel=INFO

 

        (2)程序入口

# Java Main class,也就是程序入口 #该类需要实现WrapperListener 接口并保证WrapperManager 得到初始化(调用WrapperManager.start(WrapperListener listener, String[] args) 方法)。 wrapper.java.mainclass=com.helloworld.hello.HelloWorld

 

        (3)类库设置

# Java Classpath配置,必须从序号"1"开始,添加新的jar包后序号递增 wrapper.java.classpath.1=../lib/wrapper.jar wrapper.java.classpath.2=../lib/hello.jar # Java 类库路径 (Wrapper.DLL 或 libwrapper.so 依赖文件的存放位置) wrapper.java.library.path.1=../lib

 

        (4)JVM相关配置

# 32/64位选择,true为自动选择 wrapper.java.additional.auto_bits=TRUE # Java附加参数 wrapper.java.additional.1=

 

        附加参数即为java命令可选参数,如下所示: 

-d32 use a 32-bit data model if available -d64 use a 64-bit data model if available -server to select the "server" VM The default VM is server. -cp -classpath A : separated list of directories, JAR archives, and ZIP archives to search for class files. -D= set a system property -verbose[:class|gc|jni] enable verbose output -version print product version and exit -version: require the specified version to run -showversion print product version and continue -jre-restrict-search | -jre-no-restrict-search include/exclude user private JREs in the version search -? -help print this help message -X print help on non-standard options -ea[:...|:] -enableassertions[:...|:] enable assertions -da[:...|:] -disableassertions[:...|:] disable assertions -esa | -enablesystemassertions enable system assertions -dsa | -disablesystemassertions disable system assertions -agentlib:[=] load native agent library , e.g. -agentlib:hprof see also, -agentlib:jdwp=help and -agentlib:hprof=help -agentpath:[=] load native agent library by full pathname -javaagent:[=] load Java programming language agent, see java.lang.instrument -splash: show splash screen with specified image

 

        内存大小设置:

# Java Heap 初始化大小(单位:MB) wrapper.java.initmemory=3 # Java Heap 最大值(单位:MB) wrapper.java.maxmemory=64

 

        应用程序参数设置:

# 应用程序参数,也就是main函数的String[] args参数值,序号需从"1"开始,例如: wrapper.app.parameter.1=g21121 wrapper.app.parameter.2=http://286.iteye.com/

  

        在main函数和start方法中添加了参数打印语句来观察参数是否已经传入,代码如下:

package com.helloworld.hello; import org.tanukisoftware.wrapper.WrapperListener; import org.tanukisoftware.wrapper.WrapperManager; public class HelloWorld implements WrapperListener { public static void main(String[] args) { // 打印参数 for (String arg : args) System.out.println(arg); WrapperManager.start(new HelloWorld(), args); } @Override public void controlEvent(int event) { System.out.println("controlEvent(" + event + ")"); if ((event == WrapperManager.WRAPPER_CTRL_LOGOFF_EVENT) && (WrapperManager.isLaunchedAsService() || WrapperManager.isIgnoreUserLogoffs())) { } else { WrapperManager.stop(0); } } @Override public Integer start(String[] args) { // 打印参数 for (String arg : args) System.out.println(arg); System.out.println("hello world!"); return null; } @Override public int stop(int exitCode) { System.out.println("stop(" + exitCode + ")"); return exitCode; } }

 

        重新运行服务,结果如下:

root@TFS:/usr/local/wrapper/bin# ./hello console Running helloWorld... wrapper | --> Wrapper Started as Console wrapper | Java Service Wrapper Community Edition 64-bit 3.5.20 wrapper | Copyright (C) 1999-2013 Tanuki Software, Ltd. All Rights Reserved. wrapper | http://wrapper.tanukisoftware.com wrapper | wrapper | Launching a JVM... jvm 1 | g21121 jvm 1 | http://286.iteye.com/ jvm 1 | WrapperManager: Initializing... jvm 1 | g21121 jvm 1 | http://286.iteye.com/ jvm 1 | hello world! jvm 1 | stop(0) wrapper |


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3