JavaServer Wrapper 整合SpringBoot 的使用

1.下载JavaServer Wrapper

2.在本地创建一个目录并创建文件夹

3.复制wraper 中src/bin目录下的App.bat.in,UninstallApp-NT.bat.in,InstallApp-NT.bat.in,复制wraper/bin 下的wrapper.exe ----》 都放在自建目录bin,并删除.in后缀 ,复制wrapper/conf 下的wrapper.conf 和wrapper-license.conf 到自建conf目录,复制wrapper/lib下的wrapper.ddl和wrapper.jar---》到自建目录lib,在把springBoot打包的jar放到此目录

注:需要注意的是下载的wrapper是不是破解版,Java Service Wrapper分为Professional、Standard、Community三个版本,并支持32位和64位的系统,其中Community版本为免费的社区版本

4.做完以上步骤就可以安装服务了

UninstallApp-NT.bat,InstallApp-NT.bat 卸载和安装,运行之前先看配置项

5.wrapper.conf文件配置

主要是springboot主类加载和javaee有所区别

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
#encoding=UTF-8
# Configuration files must begin with a line specifying the encoding
of the the file.
#
# NOTE - Please use src/conf/wrapper.conf.in as a template for your
#        own application rather than the values used for the
#        TestWrapper sample.
 
#********************************************************************
# Wrapper License Properties (Ignored by Community Edition)
#********************************************************************
# Professional and Standard Editions of the Wrapper require a valid
License Key to startLicenses can be purchased or a trial license
requested on the following pages:
# http://wrapper.tanukisoftware.com/purchase
# http://wrapper.tanukisoftware.com/trial
 
# Include file problems can be debugged by leaving only one '#'
at the beginning of the following line:
##include.debug
 
# The Wrapper will look for either of the following optional files for a
valid License KeyLicense Key properties can optionally be included
directly in this configuration file.
#include ../conf/wrapper-license.conf
#include ../conf/wrapper-license-%WRAPPER_HOST_NAME%.conf
 
# The following property will output information about which License Key(s)
are being found, and can aid in resolving any licensing problems.
#wrapper.license.debug=TRUE
 
#********************************************************************
# Wrapper Localization
#********************************************************************
# Specify the language and locale which the Wrapper should use.
#wrapper.lang=en_US # en_US or ja_JP
 
# Specify the location of the language resource files (*.mo).
wrapper.lang.folder=../lang
 
#********************************************************************
# Wrapper Java Properties
#********************************************************************
# 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
 
# Tell the Wrapper to log the full generated Java command line.
#wrapper.java.command.loglevel=INFO
 
# Java Main classThis class must implement the WrapperListener interface
or guarantee that the WrapperManager class is initializedHelper
classes are provided to do this for you.
See the following page for details:
http://wrapper.tanukisoftware.com/doc/english/integrate.html
wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp
 
# Java Classpath (include wrapper.jarAdd class path elements as
needed starting from 1
# 这里配置项目中用到的jar
wrapper.java.classpath.2=../lib/wrapper.jar
wrapper.java.classpath.3=../lib/javaservice.jar
 
# Java Library Path (location of Wrapper.DLL or libwrapper.so)
wrapper.java.library.path.1=../lib
 
# Java BitsOn applicable platforms, tells the JVM to run in 32 or 64-bit mode.
wrapper.java.additional.auto_bits=TRUE
 
# Java Additional Parameters
wrapper.java.additional.1=
 
# Initial Java Heap Size (in MB)
#wrapper.java.initmemory=3
 
# Maximum Java Heap Size (in MB)
#wrapper.java.maxmemory=64
 
# Application parametersAdd parameters as needed starting from 1
# SpringBoot主类配置
wrapper.app.parameter.1=org.springframework.boot.loader.JarLauncher
 
#********************************************************************
# Wrapper Logging Properties
#********************************************************************
# Enables Debug output from the Wrapper.
# wrapper.debug=TRUE
 
# Format of output for the console.  (See docs for formats)
wrapper.console.format=PM
 
# Log Level for console output.  (See docs for log levels)
wrapper.console.loglevel=INFO
 
# Log file to use for wrapper output logging.
# 文件名
wrapper.logfile=../logs/wrapper.YYYYMMDD.log
 
# Format of output for the log file.  (See docs for formats)
wrapper.logfile.format=LPTM
# 日志类型每天输入一个文件
wrapper.logfile.rollmode=DATE
# Log Level for log file output.  (See docs for log levels)
wrapper.logfile.loglevel=INFO
 
# Maximum size that the log file will be allowed to grow to before
the log is rolled. Size is specified in bytesThe default value
of 0, disables log rollingMay abbreviate with the 'k' (kb) or
#  'm' (mb) suffixFor example: 10m = 10 megabytes.
wrapper.logfile.maxsize=0
 
# Maximum number of rolled log files which will be allowed before old
files are deletedThe default value of 0 implies no limit.
wrapper.logfile.maxfiles=0
 
# Log Level for sys/event log output.  (See docs for log levels)
wrapper.syslog.loglevel=NONE
 
#********************************************************************
# Wrapper General Properties
#********************************************************************
# Allow for the use of non-contiguous numbered properties
wrapper.ignore_sequence_gaps=TRUE
 
# Do not start if the pid file already exists.
wrapper.pidfile.strict=TRUE
 
# Title to use when running as a console
wrapper.console.title=title
 
#********************************************************************
# Wrapper JVM Checks
#********************************************************************
# Detect DeadLocked Threads in the JVM. (Requires Standard Edition)
wrapper.check.deadlock=TRUE
wrapper.check.deadlock.interval=10
wrapper.check.deadlock.action=RESTART
wrapper.check.deadlock.output=FULL
 
# Out Of Memory detection.
# (Ignore output from dumping the configuration to the consoleThis is only needed by the TestWrapper sample application.)
wrapper.filter.trigger.999=wrapper.filter.trigger.*java.lang.OutOfMemoryError
wrapper.filter.allow_wildcards.999=TRUE
wrapper.filter.action.999=NONE
Ignore -verbose:class output to avoid false positives.
wrapper.filter.trigger.1000=[Loaded java.lang.OutOfMemoryError
wrapper.filter.action.1000=NONE
# (Simple match)
wrapper.filter.trigger.1001=java.lang.OutOfMemoryError
# (Only match text in stack traces if -XX:+PrintClassHistogram is being used.)
#wrapper.filter.trigger.1001=Exception in thread "*" java.lang.OutOfMemoryError
#wrapper.filter.allow_wildcards.1001=TRUE
wrapper.filter.action.1001=RESTART
wrapper.filter.message.1001=The JVM has run out of memory.
 
#********************************************************************
# Wrapper Email Notifications. (Requires Professional Edition)
#********************************************************************
# Common Event Email settings.
#wrapper.event.default.email.debug=TRUE
#wrapper.event.default.email.smtp.host=<SMTP_Host>
#wrapper.event.default.email.smtp.port=25
#wrapper.event.default.email.subject=[%WRAPPER_HOSTNAME%:%WRAPPER_NAME%:%WRAPPER_EVENT_NAME%] Event Notification
#wrapper.event.default.email.sender=<Sender email>
#wrapper.event.default.email.recipient=<Recipient email>
 
# Configure the log attached to event emails.
#wrapper.event.default.email.maillog=ATTACHMENT
#wrapper.event.default.email.maillog.lines=50
#wrapper.event.default.email.maillog.format=LPTM
#wrapper.event.default.email.maillog.loglevel=INFO
 
# Enable specific event emails.
#wrapper.event.wrapper_start.email=TRUE
#wrapper.event.jvm_prelaunch.email=TRUE
#wrapper.event.jvm_start.email=TRUE
#wrapper.event.jvm_started.email=TRUE
#wrapper.event.jvm_deadlock.email=TRUE
#wrapper.event.jvm_stop.email=TRUE
#wrapper.event.jvm_stopped.email=TRUE
#wrapper.event.jvm_restart.email=TRUE
#wrapper.event.jvm_failed_invocation.email=TRUE
#wrapper.event.jvm_max_failed_invocations.email=TRUE
#wrapper.event.jvm_kill.email=TRUE
#wrapper.event.jvm_killed.email=TRUE
#wrapper.event.jvm_unexpected_exit.email=TRUE
#wrapper.event.wrapper_stop.email=TRUE
 
# Specify custom mail content
wrapper.event.jvm_restart.email.body=The JVM was restarted.\n\nPlease check on its status.\n
 
#********************************************************************
# Wrapper Windows Service Properties
#********************************************************************
# WARNING - Do not modify any of these properties when an application
using this configuration file has been installed as a service.
Please uninstall the service before modifying this sectionThe
service can then be reinstalled.
 
# Name of the service
wrapper.name=JavaService
# Display name of the service
# wrapper.displayname=@app.long.name@
wrapper.displayname=JavaService
# Description of the service
# 服务描述
wrapper.description=Java service transit program
 
# Service dependenciesAdd dependencies as needed starting from 1
wrapper.ntservice.dependency.1=
 
# Mode in which the service is installedAUTO_START, DELAY_START or DEMAND_START
wrapper.ntservice.starttype=AUTO_START
 
# Allow the service to interact with the desktop (Windows NT/2000/XP only).
wrapper.ntservice.interactive=FALSE

  

 

posted @   qukaige  阅读(1318)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
历史上的今天:
2018-04-04 python时间处理 time,datetime,arrow
点击右上角即可分享
微信分享提示