0

當我調用應用程序URL時,我的WAR文件到Elastic Beanstalk的(成功)部署爲我提供了404 Not Found。我可以在/ var/lib/tomcat8/webapps/ROOT /中看到一個application.war文件,而不是手動部署時的META-INF和WEB-INF。AWS CodePipeline成功但未正確部署到Elastic Beanstalk

當我從S3中取出WAR文件並手動將其部署到Elastic Beanstalk時,它就像一個魅力一樣。注意:這與CodeBuild在我的管道中生成的WAR文件相同。更好的是,如果我將文件複製(scp)保存到本地計算機並將其上載到Elastic Beanstalk,它也可以工作。

看來,一切工作,直到部署,一個工作的WAR文件甚至部署到Elastic Beanstalk。

通過eb-activity.log我可以看到它識別WAR文件並將其從臨時目錄中部署到/var/lib/tomcat8/webapps/ROOT,但未解壓縮,並且容器/ web服務器未重新啓動。

如何正確部署WAR文件與CodePipeline?

+0

我有同樣的問題,並在AWS論壇上問,爲什麼戰爭放在ROOT文件夾中而不是「解壓縮」:https://forums.aws.amazon.com/thread.jspa?threadID=248895 – Azeq

回答

1

我試圖複製你正面臨的問題。我認爲在創建「war」文件時,您將包含「META-INF」和「WEB-INF」文件夾的文件夾作爲「war」輸出文件的根目錄。

相反,您應該將所有文件(在上面的文件夾中)放在沒有根級文件夾的「war」文件中。

+0

我認爲WAR文件有問題。但是,當我從S3(由CodeBuild生成)下載WAR文件並手動將其部署到Elastic Beanstalk時,它就可以工作。 – Nando

相關問題