1. 程式人生 > >解決OpenKM啟動失敗的詳細歷程

解決OpenKM啟動失敗的詳細歷程

今天因專案需求要安裝OpenKM開源電子文件系統,從官網下載安裝後,點選桌面上的啟動按鈕總是一個視窗一閃而過就沒了,明顯沒啟動的了。那麼就要查詢啟動失敗的原因了,可是那個提示失敗原因的視窗一閃即逝,完全捕捉不了,這可怎麼辦呢?

想了想,如果在命令列中開啟不就可以看到提示資訊了嗎?於是開啟啟動按鈕的原始檔位置,竟然發現OpenKM的啟動檔案就是Tomcat的啟動檔案startup.bat(後來才知道OpenKM 6.0以後的版本都是基於Tomcat執行的,OpenKM是web系統,當然需要先啟動Tomcat了),然後在命令列中執行startup.bat,雖然有過程資訊,但是錯誤資訊還是一個視窗一閃而過,這又怎麼辦呢?

1. 解決用startup.bat啟動Tomcat時一閃而過的方法

經過一陣Google和百度,找到了解決這一閃而過的方法,需要修改真正的啟動檔案catalina.batstartup.bat核心部分實際上是呼叫該檔案裡的命令完成的),修改方法如下:

找到catalina.bat檔案裡的下面這段:

:doStart
shift
if not "%OS%" == "Windows_NT" goto noTitle
if "%TITLE%" == "" set TITLE=Tomcat
set _EXECJAVA=start "%TITLE%" %_RUNJAVA%
goto gotTitle
:noTitle
set _EXECJAVA=start %_RUNJAVA%
:gotTitle
if not ""%1"" == ""-security"" goto execCmd
shift
echo Using Security Manager
set "SECURITY_POLICY_FILE=%CATALINA_BASE%\conf\catalina.policy"
goto execCmd

將上面set _EXECJAVA=start "%TITLE%" %_RUNJAVA%中的"start "%TITLE%""部分去掉,學過批處理或DOS命令的都知道start命令的意思是重新啟動一個命令列視窗。去掉start後,就不會再重新啟動視窗,就達到了使命令列停住的效果,也就解決了還沒來得及檢視錯誤提示資訊視窗就不見了的問題。

按照此方法解決了啟動Tomcat失敗時一閃而過的問題,找到了啟動失敗的原因。

2. 啟動不了OpenKM的真正原因

解決了上述問題後發現錯誤原因中有一串亂碼,如下圖所示:


注:上面的命令是直接用catalina.bat啟動的,catalina.bat start相當於startup.bat,至於用的是catalina1.bat是因為怕破壞原檔案所以重新儲存了修改後的檔案方便測試。

這段亂碼是啥意思呢?注意我安裝OpenKM的目錄是E:\Program Files\openkm-6.2.5-community,我估摸著這意思是找不到E:\Program Files\openkm-6.2.5-community\tomcat\conf\log4j.properties這個配置檔案,於是跑到該目錄下一看,這檔案明明在啊,難道是我理解錯了?是這配置檔案有錯誤?仔細想了下,應該不可能,這配置檔案安裝生成的又不是我自己配置的,而且為什麼這一串目錄前面部分顯示未亂碼呢?

經過再三思考,一個念頭湧上來:難道是因為Program Files這個資料夾中間有空格導致的???識別不了。怪不得安裝時提示的安裝目錄是C:\openkm-6.2.5-community而不是C:\Program Files\openkm-6.2.5-community呢,可能就是這個原因,於是馬上解除安裝了重灌,重灌後的目錄為E:\openkm-6.2.5-community,然後發現:啟動成功了!!!

哎,一個小問題引發的悲傷啊,搞了將近兩個小時才解決,看到下面這個介面,心裡一陣寬慰~~~