不,你不能捆綁JDBC罐子Tomcat7:
我有這個問題,這是一個噩夢調試。在我的試驗和文檔中,您不能將JDBC驅動程序打包到WAR文件中。或者至少可以,但類加載器將忽略不在Tomcat Lib文件夾中的JDBC類。它在文檔的Mysql的部分第一段這裏 - >Tomcat7-JDBC我不知道Tomcat8或Tomcat9公測...
短期的解決辦法
我要做的就是你說的到底是什麼你不想做和Mark B的解決方案類似。我使用一個腳本來從s3複製它,但這非常簡單,如果使用aws s3 cp命令,則只有一行bash。 aws s3工具安裝在您的應用程序將運行的EC2實例上。
aws s3 cp s3://mybucket/mysql.jar /usr/share/tomcat7/lib/mysql.jar
*您將需要重新啓動Tomcat的另一個原因,你應該看到長遠的解決方案
長期真正的解決辦法=自動化構建步驟
最後,你最終將不得不如果您的應用程序變得複雜,請運行配置腳本,這就是爲什麼我停止使用彈性beanstalk並開始使用AWS cloudformation,它爲您提供了一個「STEP」,您可以在其中輸入與Docker構建步驟類似的所有設置腳本。它還將爲每個創建的新實例運行這些配置步驟,因此您不需要ssh登錄每個框。
Cloudformation將所有關於將您的基礎架構設置轉換爲代碼,您可以實際檢查到github並構建而無需任何手動干預。您只需經歷一次配置構建腳本的頭痛問題,然後將您的環境保存爲json或yaml文件。你可以包括MySQL服務器,tomcat版本,防火牆,負載均衡等等,並且從一個文件構建所有這些。
如果Tomcat沒有運行其他任何東西,是否可以將jdbc驅動程序放入WAR文件中? –
是的,Tomcat不會運行其他任何東西。我只是在Tomcat中部署一個war文件。 –
然後在你的戰爭文件中加入驅動程序。由於您的部署是獨立的,因此很可能會讓您的日常工作更輕鬆。 –