我有一個簡單的基于 Java servlet 的應用程式,在 EC2 中的 tomcat 服務器的 8080 埠運行。 當我點擊一個按鈕時,它將回傳資料庫中的所有用戶記錄并將其呈現在螢屏上。
當我在本地主機上部署 Tomcat 時,該應用程式作業正常,并且它與檢索用戶記錄的 RDS 連接良好。
然而,當我將 WAR 檔案部署到 EC2 實體上的 Tomcat 并在 http://51...***:8080/MyApp-0.0.1-SNAPSHOT 上訪問它時,當我單擊相同的按鈕時,它不允許我連接到我的 RDS 并回傳相同的物件。
EC2和RDS實體共享相同的可用性區域、VPC(默認)和安全組。
我甚至將 EC2 的私有 IP 地址添加到了為 RDS 和 EC2 指定入站規則的安全組中(入站:Postgres 5432 139...***)。
我通過AWS EC2 Instance Connect連接到我的EC2(而不是通過我本地主機上的bash,因為RDS是一種管理服務)。我已經在ec2上安裝了maven、jdk8、tomcat和git....,我還需要安裝postgres嗎?
在將war檔案復制到 我在做什么?
在允許 EC2 和 RDS 互相對話方面,我做錯了什么?
uj5u.com熱心網友回復: 弄清楚了。與安全組或VPC沒有關系。 基于servlet的應用程式正在使用URL重寫來捕獲發送到http://543.251.123/AppToDeploy/..的請求。 在EC2實體中,當我運行 修復方法是在我的
標籤: 上一篇:使用SwiftUI在改變文本欄位時對顏色的變化進行影片處理
下一篇:在ubuntutomcat上沒有找到com.sun.ws.rs.ext.RuntimeDelegateImpl類。
var/lib/tomcat/webapps之后,我用sudo service tomcat start運行該應用程式,并且可以通過我上面提到的地址在8080埠訪問它。(http://51.***.***.***:8080/MyApp-0.0.1-SNAPSHOT). final String URI = request.getRequestURI().replace("/AppToDeploy/", "")。
switch(URI) {
case "login":
RequestHelper.processLogin(request, response);
破解。
...
mvn clean package時,它生成了一個名為AppToDeploy-0.0.1-SNAPSHOT.war的WAR,我將其傳遞給Tomcat的webapps/目錄,以便在8080埠提供服務。
pom.xml檔案中添加以下內容,以重新命名打包的war檔案。 <build>
<!-- 這將重命名已建成的戰爭檔案-->
<finalName>${project.artifactId}</finalName>
</build>

