jfinal项目部署服务器,jfinal undertow项目再集成JDK,一键安装系统服务,让部署再快一点...
經常由于本地的開發環境和服務器上的生產環境不同,導致項目部署過程中會遇到各種插曲,現在有了jfinal undertow,終于可以擺脫tomcat等各種配置,但是開發環境的JDK和服務器上的JDK版本不一定一致,比如我面臨的情況是,開發環境是JDK8,但是生產環境還是JDK6,服務器上有眾多依賴于JDK6的項目,還不能輕易更換,以前都是在tomcat中指定JDK版本,現在改用undertow后也想這樣,于是在波總的建議下,目前實現方式如下:
將JDK中的jre目錄拷貝到項目中來,我是copy到了main目錄下,然后在package.xml中增加如下配置
${basedir}/src/main/jre
jre
然后在start.bat文件中增加如下配置,讓批處理文件不去系統環境中找JDK而是在指定的位置去找set?JAVA_HOME=%APP_BASE_PATH%jre
set?path=%APP_BASE_PATH%jre/bin
由于我們的服務器是windows環境,所以需要將批處理文件安裝成系統服務,便于維護和管理。最后是找到了一個靠譜的小工具叫 nssm (Non-Sucking Service Manager)非依附式系統服務管理工具,支持圖形界面和命令行。僅需將nssm.exe和批處理文件放在同一目錄下就可以直接使用了。如:
我目前的安裝服務腳本如下:@echo?off
rem?-------------------------------------------------------------------------
rem
rem?使用說明:
rem
rem?1:?修改service?name為你期望在系統服務中顯示的名稱,本例中為?JfinalTest,共4處需要修改
rem
rem?2:?編寫對服務的具體描述信息,即?Description?后面的內容。共一處需要修改
rem
rem?-------------------------------------------------------------------------
setlocal?&?pushd
set?APP_BASE_PATH=%~dp0
nssm?install?JfinalTest?%APP_BASE_PATH%start.bat
nssm?set?JfinalTest?AppDirectory?%APP_BASE_PATH%
nssm?set?JfinalTest?Description?"this?is?first?test?for?nssm"
nssm?start?JfinalTest
endlocal?&?popd
pause
其他刪除服務、重啟服務、停止服務命令都比較簡單,大家可以自行網上找找資料,很多。而且該工具還支持圖形界面,也很簡單,如下
然后把編寫的服務管理的腳本都用maven打包插件在打包時一并copy到部署包中,在服務器上解壓后,即可實現一鍵部署,不用再關心tomcat、不用再關心服務器JDK版本,服務器重啟系統也會自動重啟,這個小工具還有線程守護,發現服務停掉會自動去嘗試重啟。是不是很省心。
總結
以上是生活随笔為你收集整理的jfinal项目部署服务器,jfinal undertow项目再集成JDK,一键安装系统服务,让部署再快一点...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Mercurial(Hg)基本操作
- 下一篇: 中原地区第一款开源产品SmartAdmi