windows部署weblogic后,需要手動開啟weblogic管理員服務器,即Start Admin Server for Weblogic Server Domain,不過這樣的話每次重啟或者不小心就關掉了cmd窗體,很不方便。幸好weblogic本身可以實現通過windows服務自動啟動weblogic管理員服務器。
Weblogic的版本為10.3.6,在用installSvc.cmd安裝服務后,自動啟動服務時,提示如下 服務自動停止的錯誤。

安裝服務的具體操作如下
編輯安裝目錄 C:\Oracle\Middleware\wlserver_10.3\server\bin里的installSvc.cmd文件,在
rem *** Install the service "%WL_HOME%\server\bin\beasvc" -install -svcname:"beasvc %DOMAIN_NAME%_%SERVER_NAME%" -javahome:"%JAVA_HOME%" -execdir:"%USERDOMAIN_HOME%" -maxconnectretries:"%MAX_CONNECT_RETRIES%" -host:"%HOST%" -port:"%PORT%" -extrapath:"%EXTRAPATH%" -password:"%WLS_PW%" -cmdline:%CMDLINE%
代碼前面 加上以下幾句話
set JAVA_HOME=C:\Program Files\Java\jdk1.7.0_45
set DOMAIN_NAME=BASE_DOMAIN set SERVER_NAME=AdminServer set USERDOMAIN_HOME=C:\Oracle\Middleware\user_projects\domains\base_domain set WLS_USER=weblogic set WLS_PW=Pass@word1
JAVA_HOME即java JDK的安裝目錄,DOMAIN_NAME即weblogic server的域的名稱(登錄weblogic查看域),SERVER_NAME即weblogic 服務器的實例的名稱(登錄weblogic查看服務器),USERDOMAIN_HOME即當前登錄用戶域所在目錄,WLS_USER和WLS_PW是登錄weblogic的用戶名和密碼。
加上之后,以管理員身份打開cmd命令窗口,執行以下命令(每一行是一條命令)
cd C:\Oracle\Middleware\wlserver_10.3\server\bin
installSvc.cmd
之后在啟動時,就遇上面圖中的錯誤,現在說一下解決方案:
首先呢,在命令窗口執行如下命令(每一行是一條命令),進行服務的啟動調試
cd C:\Oracle\Middleware\wlserver_10.3\server\bin
beasvc -debug "beasvc BASE_DOMAIN_AdminServer"
這時系統會提示服務啟動不了得具體原因,如下圖所示

這是提示unable to locate java.dll in c:\program files\java\jdk1.7.0_45\bin\jre\bin!,看黑色加粗部分我們可知,是我們的java環境路徑不對,我們在installSvc.cmd里面搜索JAVA_HOME 發現JAVA_HOME變量讓我設置錯了,多加了一個bin,具體如下代碼
set JAVA_HOME=C:\Program Files\Java\jdk1.7.0_45\bin
重新安裝服務,運行beasvc -debug "beasvc BASE_DOMAIN_AdminServer"命令后,發現如下錯誤

這是我們注冊表注冊服務的時候出了問題,regedit打開注冊表,找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\beasvc BASE_DOMAIN_AdminServer\Parameters,在CmdLine這個屬性處,我們發現有個-client,具體如下圖

編輯此屬性,去除-client,重新運行服務,發現一切正常了.
另外今天(2014-3-14)在注冊另一台機器weblogic的windows服務的時候,報這個錯誤

然后按要求打開注冊表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\beasvc BASE_DOMAIN_AdminServer\Parameters,把cmdline的-client去掉后,還是不可以,然后發現JAVAHOME的鍵值有些異常,如下圖所示

果斷去掉JAVAHome鍵值中路徑的set beasvc……的值,重啟服務,但過了一會還是自動停止。 於是卸載掉服務,重新安裝,發現在安裝文件installsvc.CMD里有句話寫錯了,具體如下

換行后,正常。
卸載服務
卸載此服務命令的方法如下,找到C:\Oracle\Middleware\wlserver_10.3\server\bin里的uninstallSvc.cmd
編輯里面的
"%WL_HOME%\server\bin\beasvc" -remove -svcname:"beasvc %DOMAIN_NAME%_%SERVER_NAME% 修改為
"%WL_HOME%\server\bin\beasvc" -remove -svcname:"beasvc BASE_DOMAIN_AdminServer"
(beasvc BASE_DOMAIN_AdminServer為你的服務名)
在命令窗口運行如下命令(每一行是一條命令),
cd C:\Oracle\Middleware\wlserver_10.3\server\bin
uninstallSvc.cmd
