我正在使用jenkins CI來構建我的項目。構建完成後,我已經發布了步驟,將shell腳本複製到WSO2應用程序服務器/ repository/deployment/server/webapps /文件夾。但是我觀察到有時(並非總是),服務器無法重新部署Web應用程序。大多數情況下,Web應用程序將使用jenkins複製的新war文件重新部署到webapps文件夾中。但有時候這並沒有發生。在這種情況下,唯一的解決方案是停止wso2as服務器,刪除web應用程序文件夾,只留下wenapps目錄中的新war文件並再次啓動wso2as服務器。這部署了新的戰爭文件,測試可以繼續進行。WSO2應用服務器不會通過jenkins啓動後步驟shell腳本
但是我們需要運行自動硒測試。因此爲了測試運行,我們需要在每個jenkins版本上可靠地部署新的war文件。
所以我寫在詹金斯一小腳本後工序象下面這樣:
#!/bin/bash
/home/kk/wso2as-5.0.1/bin/wso2server.sh stop &&
sleep 1m &&
rm -rf /home/kk/wso2as-5.0.1/repository/deployment/server/webapps/Duster_App1* &&
cp /home/kk/.jenkins/workspace/Dusters_App1/target/Duster_App1-${MAVEN_VERSION}.war /home/kk/wso2as-5.0.1/repository/deployment/server/webapps/Duster_App1.war &&
/home/kk/wso2as-5.0.1/bin/wso2server.sh start &&
echo Starting wso2as
運行此腳本。 wso2as服務器停止,webapp文件夾被刪除,新的war文件被正確地複製到位,我在jenkins控制檯輸出上得到'Starting wso2as'消息,但是wso2as服務器沒有啓動。它保持停止狀態。我在wso2server.sh stop命令之後引入了睡眠1m行,認爲服務器可能需要時間關閉,因此在運行wso2server.sh start命令時無法再次啓動。但不是。在啓動命令運行之前,服務器將被徹底停止,因爲我已通過跟隨日誌文件以及ps aux命令進行了驗證。
那麼,可能會阻止服務器再次啓動?
感謝您的輸入。已在[AS_HOME] /repository/conf/tomcat/catalina-server.xml中進行了更改以不解壓戰爭;並在我的詹金斯腳本中複製戰爭文件。 如果這項工作一致並更新,將會觀察一段時間。 – kmkale
這或多或少有效。但有時web應用程序無法部署錯誤,如重複的名稱等仍然在錯誤的列表中。在這種情況下,必須停止服務器,刪除戰爭,重新啓動服務器,並將戰爭從maven build複製到webapps文件夾。 – kmkale