最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解SpringBoot注冊Windows服務和啟動報錯的原因

 更新時間:2019年03月13日 09:30:55   作者:ITDragon龍  
這篇文章主要介紹了詳解SpringBoot注冊Windows服務和啟動報錯的原因,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

Windows系統(tǒng)啟動Java程序會彈出黑窗口。黑窗口有幾點不好。首先它不美觀;其次容易誤點導致程序關閉;但最讓我匪夷所思的是:將鼠標光標選中黑窗口日志信息,程序竟然不會繼續(xù)執(zhí)行,日志也不會繼續(xù)輸出。從而導致頁面一直處于請求狀態(tài)?;剀嚭蟪绦虿拍苷?zhí)行。同時客戶希望我們能部署在Windows系統(tǒng)上并且做到開機自動啟動。針對以上需求將系統(tǒng)程序注冊成Windows服務變得尤為重要。

針對于SpringBoot程序,目前主流的方法是采用winsw,簡單方便??墒窃陂_發(fā)過程中,針對不同的系統(tǒng),啟動服務可能會出現(xiàn)意想不到的結(jié)果。同樣的配置方法,在win10可以成功注冊并啟動服務。而在windows server 2012 卻啟動失敗。這里分享我的經(jīng)驗。

注冊windows服務制作流程

winsw是⼀款可以將可執(zhí)⾏程序安裝成Windows Service的開源⼩⼯具,官⽹地址, 下載地址

制作步驟:

第一步:將springboot項目打包成MyServer.jar

第二步:將下載的WinSW.NET2.exe 改名為MyServer.exe

第三步:將下載的sample-minimal.xml 改名為MyServer.xml

第四步:注冊和啟動服務

這里重點介紹 sample-minimal.xml 文件

<service>
 <!-- Windows 服務唯一標識ID-->
 <id>My Server</id>
 <!-- Windows 服務名稱--> 
 <name>My Server</name> 
 <!-- Windows 服務描述--> 
 <description>This service is a service cratead from a minimal configuration</description> 
 <!-- 啟動的可執(zhí)行文件的路徑,如果已經(jīng)配置環(huán)境變量,則不必寫全路徑(則其實是一個坑) -->
 <executable>java</executable> 
 <arguments> -jar MyServer.jar --spring.datasource.url=jdbc:mysql://localhost:3306/database </arguments> 
 <!-- 日志路徑,若目錄不存在,則默認為配置文件所在的同一目錄--> 
 <logpath>ServerPath\log\dashboard\</logpath> 
 <!-- 日志模式,默認為append追加模型,rotate為旋轉(zhuǎn)模式-->
 <logmode>rotate</logmode> 
</service>

executable:啟動可執(zhí)行文件的全路徑,如果配置環(huán)境變量,則可以簡寫,所有這里填寫Java

arguments:命令執(zhí)行的參數(shù)

logpath:配置日志路徑

logmode:日志輸出模式,默認為append,官方文檔

  • append (追加模式)其特點是將日志文件全部輸出在一個文件中,這個文件可能會越來越大。
  • rotate(旋轉(zhuǎn)模式,推薦)當日志文件大小達到10兆(默認值),winsw會將日志重新輸出到另外一份日志文件,最多保留8個(默認值)。
  • reset(重置模式)每次重啟服務都會重置日志文件。
  • none(忽略模式)幾乎不會生成日志文件。

winsw常用命令

  • MyServer.exe install:安裝服務
  • MyServer.exe uninstall:刪除服務
  • MyServer.exe start:啟動服務
  • MyServer.exe stop:停⽌服務
  • MyServer.exe restart:重啟服務
  • MyServer.exe status:輸出當前服務的狀態(tài)

MyServer.exe 是WinSW.NET2.exe文件。在win10系統(tǒng)上一次成功,沒有多余的煩惱??缮钅挠羞@么容易,在windows server 2012 r2的系統(tǒng)上啟動失敗。有錯誤不可怕,可怕的是不會找錯誤日志。

啟動windows服務失敗

服務啟動成功后自動關閉,配置的日志文件也沒有生成。嘗試用cmd執(zhí)行java -jar的命令,服務可以正常啟動。但可具體是什么錯誤卻不得而知。其實Windows服務是有日志管理的。選擇:控制面板---管理工具---事件查看器---window日志---應用程序---找出對應服務的日志。如下:

Service cannot be started. 
System.ComponentModel.Win32Exception: The system cannot find the file specified 
at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo) 
at winsw.WrapperService.StartProcess(Process processToStart, String arguments, String executable) 
at winsw.WrapperService.OnStart(String[] _) 
at System.ServiceProcess.ServiceBase.ServiceQueuedMainCallback(Object state)

提示很清楚,系統(tǒng)沒有找到指定文件,而在winsw的xml文件中就已經(jīng)配置了executable,并且配置了環(huán)境變量。那為什么還提示文件沒有找到?抱著試一試的心態(tài),將java改為了全路徑。重新注冊服務并啟動,結(jié)果服務啟動成功了。一肚子的火不知道往那撒。

為了避免這種事情再次發(fā)生,決定將executable的內(nèi)容設置成Java的全路徑,于是簡單寫了一個bat文件。

@echo off
# 獲取java環(huán)境變量 
set JAVA_HOME=%JAVA_HOME%
echo %JAVA_HOME%
# 替換java路徑
setlocal enabledelayedexpansion
set file=%cd%\MyServer.xml
set file_tmp=%cd%\MyServer_tmp.xml
set source=JAVAHOME
set replaced=%JAVA_HOME%\bin\java

for /f "delims=" %%i in (%file%) do (
  set str=%%i
    set "str=!str:%source%=%replaced%!"
    echo !str!>>%file_tmp%
)
move "%file_tmp%" "%file%"
# 注冊并啟動服務
MyServer.exe uninstall
MyServer.exe install
MyServer.exe start
EXIT 

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • 簡單幾步實現(xiàn)將Spring security4.x升級到5.x

    簡單幾步實現(xiàn)將Spring security4.x升級到5.x

    這篇文章主要介紹了簡單幾步實現(xiàn)將Spring security4.x升級到5.x方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • 一文看懂Mybatis中的延遲加載

    一文看懂Mybatis中的延遲加載

    這篇文章主要介紹了一文看懂Mybatis中的延遲加載,延遲加載也稱為懶加載,是指在進行表的關聯(lián)查詢時,按照設置延遲規(guī)則推遲對關聯(lián)對象的select查詢,MyBatis 的延遲加載只是對關聯(lián)對象的查詢有遲延設置,對于主加載對象都是直接執(zhí)行查詢語句的,需要的朋友可以參考下
    2023-10-10
  • java使用XSSFWorkbook實現(xiàn)讀寫Excel

    java使用XSSFWorkbook實現(xiàn)讀寫Excel

    這篇文章主要為大家詳細介紹了java如何通過使用XSSFWorkbook實現(xiàn)讀寫Excel功能,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-04-04
  • Java經(jīng)典設計模式之裝飾器模式解析

    Java經(jīng)典設計模式之裝飾器模式解析

    這篇文章主要介紹了Java經(jīng)典設計模式之裝飾器模式解析,裝飾器模式主要解決繼承關系過于復雜的問題,通過組合來替代繼承,指在不改變現(xiàn)有對象結(jié)構(gòu)的情況下,動態(tài)地給該對象增加一些職責(即增加其額外功能)的模式,需要的朋友可以參考下
    2023-08-08
  • Java實戰(zhàn)之小米交易商城系統(tǒng)的實現(xiàn)

    Java實戰(zhàn)之小米交易商城系統(tǒng)的實現(xiàn)

    這篇文章將利用Java實現(xiàn)小米交易商城系統(tǒng),文中采用的技術(shù)有:JSP?、Spring、SpringMVC、MyBatis等,感興趣的小伙伴可以跟隨小編一起學習一下
    2022-04-04
  • 一文帶你掌握Java開發(fā)者如何接入并使用DeepSeek

    一文帶你掌握Java開發(fā)者如何接入并使用DeepSeek

    對于Java開發(fā)者來說,將DeepSeek集成到項目中,可以極大地提升數(shù)據(jù)處理和分析的效率,下面小編就來為大家介紹一下具體的調(diào)用方法吧
    2025-03-03
  • SpringBoot文件訪問映射如何實現(xiàn)

    SpringBoot文件訪問映射如何實現(xiàn)

    這篇文章主要介紹了SpringBoot文件訪問映射如何實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-02-02
  • spring框架學習總結(jié)

    spring框架學習總結(jié)

    Spring是于2003 年興起的一個輕量級的Java 開發(fā)框架,由Rod Johnson創(chuàng)建。簡單來說,Spring是一個分層的JavaSE/EE full-stack(一站式) 輕量級開源框架
    2021-06-06
  • 基于parameters參數(shù)實現(xiàn)參數(shù)化過程解析

    基于parameters參數(shù)實現(xiàn)參數(shù)化過程解析

    這篇文章主要介紹了基于parameters參數(shù)實現(xiàn)參數(shù)化過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-08-08
  • 詳解如何熟練使用java函數(shù)式接口

    詳解如何熟練使用java函數(shù)式接口

    最近剛好有空給大家整理下JDK8的特性,這個在實際開發(fā)中的作用也是越來越重了,本文重點講解下函數(shù)式接口內(nèi)容,需要的朋友可以參考下
    2021-06-06

最新評論

南安市| 沽源县| 玉山县| 旬邑县| 南通市| 乌拉特前旗| 九台市| 米脂县| 高平市| 策勒县| 漾濞| 新野县| 广元市| 化州市| 远安县| 武汉市| 大安市| 上思县| 胶南市| 潞西市| 扬州市| 武夷山市| 天镇县| 沂南县| 宜宾县| 军事| 兰溪市| 四会市| 恩平市| 顺义区| 东光县| 乐业县| 高雄市| 淮北市| 曲沃县| 陵水| 突泉县| 工布江达县| 曲靖市| 恩平市| 兰考县|