設置成windows服務
關於如何將jar包設置成windows服務這部分在 這篇博客 中寫的很詳細了,這裏就不再贅述
配置成windows服務過程中碰到的問題
配置後在日誌中查看報錯信息爲: 看日誌中報錯信息爲: %1 不是有效的 Win32 應用程序
實際在下載Procrun後的解壓包中,本身就分爲64位與32位之分,使用的時候選擇對應的版本即可
H2數據庫權限問題(嚴格來講,這個不屬於配置服務的問題,應當屬於H2數據庫使用相關問題,但確實排查了很久。。。)
現象如下:
- 正常配置服務也可以啓動,並且能正常打開應用,但是在登錄的時候卻報user不存在的問題(只有這個時候才使用到了數據庫,用的是h2數據庫)。
- 使用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
果然,修改後,服務中的也可以正常運行了。