1. 程式人生 > >【整理】weblogic下發步驟使用命令列代替控制檯介面

【整理】weblogic下發步驟使用命令列代替控制檯介面

專案要求專案下發時不用進控制檯介面操作,直接用命令列(頭都大了)

一開始只知道 ./startWebLogic.sh ./stopNodeManager.sh這怎麼能解決啊。。。啊。。。

整個下發過程:

1.備份、停止、刪除原有部署專案

2.停止受管服務節點

3.重新部署、啟動

4.重啟受管服務節點

上面的命令根本不管事啊。。

之後經過查詢資料,發現了兩個命令 weblogic.Deployer和weblogic.Server

參考:http://edocs.weblogicfans.net/wls/docs92/deployment/deploy.html

            http://www.beansoft.biz/weblogic/docs92/admin_ref/weblogicServer.html

            http://www.blogjava.net/fastzch/archive/2007/12/27/170946.html

一、首先說說weblogic.Deployer,就是部署應用程式和模組,命令如下

wlslib=/weblogic/wlserver_10.3/server/lib
export wlslib
java -cp $wlslib/weblogic.jar:$wlslib/wlepool.jar:$wlslib/wleorb.jar weblogic.Deployer -adminurlhttp://locahost:7200/ -usernameweblogic -passwordweblogic

 -name test -targets test_cluster -deploy /weblogic/deploy/test.war

紅色區是相關引數一開始這些引數搞不懂報了一些錯,第一處是weblogic提供的命令(如weblogic.jar)的所在,第二處是weblogic服務的地址,最好用ip,第三處和第四處是賬戶和密碼,這不用說,第五處是指在其上分發和部署應用程式或模組的目標,我這是叢集的名稱,也可以到config.xml中檢視(/weblogic/user_projects/domains/test_domain/config)

<app-deployment>
    <name>test</name>
    <target>test_cluster</target>
    <module-type>war</module-type>
    <source-path>/weblogic/deploy/test.war</source-path>
    <deployment-order>100</deployment-order>
    <security-dd-model>DDOnly</security-dd-model>
  </app-deployment>
另:在過程中遇到一個報錯
[Deployer:149163]The domain edit lock is owned by another session in non-exclusive mode - this deployment operation requires exclusive access to the edit lock and hence cannot proceed. If you are using "Automatically Aquire Lock and Activate Changes" in the console, then the lock will expire shortly so retry this operation. 

這是因為之前用控制檯操作鎖了,“釋放配置”即可

以上是安裝部署,那怎麼停止刪除呢,用-undeploy,命令如下:

wlslib=/weblogic/wlserver_10.3/server/lib
export wlslib
java -cp $wlslib/weblogic.jar:$wlslib/wlepool.jar:$wlslib/wleorb.jar weblogic.Deployer -adminurl http://localhost:7200/ -username weblogic -password weblogic -name test -undeploy

別的不說,只說name,就是控制平臺裡部署的名字


二、weblogic.Server,啟動伺服器

因為一些引數不明確,總報錯

 <BEA-090783> <Server is Running in Development Mode and Native Library(terminalio) to read the password securely from commandline is not found.> 
使用-Dweblogic.management.allowPasswordEcho=true
參考自http://rodrigoportela.blog.br/category/servers/

-Dweblogic.management.username=weblogic -Dweblogic.management.password=weblogic 賬戶和密碼

完整命令如下(還有問題)

wlslib=/weblogic/wlserver_10.3/server/lib
export wlslib
java -cp $wlslib/weblogic.jar:$wlslib/wlepool.jar:$wlslib/wleorb.jar  -Dweblogic.Name=appms1 -Dweblogic.management.server=localhost:7201 -Dweblogic.management.username=weblogic -Dweblogic.management.password=weblogic -Dweblogic.RootDirectory=/weblogic/user_projects/domains/test_domain/ -Dweblogic.management.allowPasswordEcho=true weblogic.Server
<Error> <Socket> <BEA-000438> 
<Error> <Configuration Management> <BEA-150000>
<Error> <WebLogicServer> <BEA-000383> 

參考:http://www.cnblogs.com/fengqingtao/p/3513660.html

            http://fm928.blog.163.com/blog/static/748135201059111427589/

            http://blog.itpub.net/507279/viewspace-713997/

其實將

localhost:7201
改為
http://localhost:7200/

就ok了(還是英語水平不過關啊。。。,把Dweblogic.management.server以為該受管伺服器的訪問地址了,其實就是管理伺服器地址。。。大哭

三、使用指令碼管理器啟動關閉受管伺服器

以上是使用 java weblogic.Server 命令啟動受管伺服器,但我不知道怎麼讓它成為後臺命令,每起個服務要開啟新的連線。。

命令如下:

cd /weblogic/user_projects/domains/test_domain/bin
開啟
nohup sh ./startManagedWebLogic.sh app1 http://localhost:7200 -Dweblogic.management.username=weblogic -Dweblogic.management.password=weblogic -Dweblogic.system.StoreBootIdentity=true&
關閉
./stopManagedWebLogic.sh app1 http://localhost:7200 weblogic weblogic
app1是受管伺服器 http://localhost:7200 管理伺服器地址

四、伺服器啟動時引數

伺服器啟動時設定了個類路徑引數,用指令碼啟動時不管用了,搞了半天,,,,

nohup sh ./startManagedWebLogic.sh app1 http://localhost:7200 -Dweblogic.management.username=weblogic -Dweblogic.management.password=weblogic -Dweblogic.system.StoreBootIdentity=true  -classpath "/weblogic/wlserver_10.3/server/lib/weblogic.jar:/weblogic/sa"&

五、關於賬戶密碼的明文

由於專案下發,那邊的要求是命令裡不帶賬戶密碼的明文,可以手輸入,最好輸一遍就後面不用輸了

上面在啟動伺服器時提到的

-Dweblogic.management.username=weblogic -Dweblogic.management.password=weblogic -Dweblogic.system.StoreBootIdentity=true
第一次時會在節點下的security裡會生成個boot.properties檔案,會儲存賬戶密碼,可以通過下面命令找到這個檔案
-Dweblogic.system.BootIdentityFile=/weblogic/user_projects/domains/test_domain/servers/AdminServer/security/boot.properties

六、完整

1)關閉刪除應用

wlslib=/weblogic/wlserver_10.3/server/lib
export wlslib
java -cp $wlslib/weblogic.jar:$wlslib/wlepool.jar:$wlslib/wleorb.jar weblogic.Deployer -adminurl http://localhost:7200/ -name test -undeploy

2)關閉服務

cd /weblogic/user_projects/domains/sam_domain/bin
./stopManagedWebLogic.sh app1 http://localhost:7200

3)重新部署

wlslib=/weblogic/wlserver_10.3/server/lib
export wlslib
java -cp $wlslib/weblogic.jar:$wlslib/wlepool.jar:$wlslib/wleorb.jar weblogic.Deployer -adminurl http://localhost:7200/ -name test -targets 

test_cluster -deploy /weblogic/deploy/test.war

4)重啟受管服務節點

nohup sh ./startManagedWebLogic.sh app http://localhost:7200 -Dweblogic.system.BootIdentityFile=/weblogic/user_projects/domains/test_domain/servers/AdminServer/security/boot.properties -

Dweblogic.system.StoreBootIdentity=true -classpath "/weblogic/wlserver_10.3/server/lib/weblogic.jar:/weblogic/sa"&