將springboot的jar包添加到windows服務及遇到的問題及其解決思路

設置成windows服務

關於如何將jar包設置成windows服務這部分在 這篇博客 中寫的很詳細了,這裏就不再贅述

配置成windows服務過程中碰到的問題

配置後在日誌中查看報錯信息爲: 看日誌中報錯信息爲: %1 不是有效的 Win32 應用程序

實際在下載Procrun後的解壓包中,本身就分爲64位與32位之分,使用的時候選擇對應的版本即可

H2數據庫權限問題(嚴格來講,這個不屬於配置服務的問題,應當屬於H2數據庫使用相關問題,但確實排查了很久。。。)

現象如下:

  1. 正常配置服務也可以啓動,並且能正常打開應用,但是在登錄的時候卻報user不存在的問題(只有這個時候才使用到了數據庫,用的是h2數據庫)。
  2. 使用java -jar 能夠正常啓動,並且能夠正常訪問user信息。

思路
最開始就是想到這種服務能否調試

  • 調試服務
    運行服務爲控制檯模式,你需要使用 //TS// 參數。如
rem 安裝
"%SRV%" //TS//prun-yaojingcai-erp
echo 安裝服務完成。

調試無果的過程中,猜測是h2數據庫文件的與用戶訪問的權限問題,因爲我的配置文件中關於h2數據庫的初始配置是

jdbc:h2:file:~/.h2/data-migration-new;AUTO_SERVER=TRUE

這個在windows下面的話,默認是生成在當前用戶文件夾下面,。用java -jar的話是當前用戶,訪問自己用戶文件夾下面的問題肯定是沒有問題,但是如果添加爲windows系統服務,是否就因爲訪問權限的問題訪問不到呢?
因此嘗試將h2數據庫文件修改到相對jar應用上層data文件夾下面,代碼如下:

jdbc:h2:file:./data/data-migration-new;AUTO_SERVER=TRUE

果然,修改後,服務中的也可以正常運行了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章