簡體   English   中英

使用Java將網絡應用上傳到tomcat

[英]Upload web app to tomcat using Java

在單元測試中,我使用org.apache.catalina.startup.Tomcat部署Web應用程序。 我能夠部署.war格式的Web應用程序,而不會出現任何問題。 但就我而言,我想將Java代碼中的值添加到webapp的index.html中,然后上傳。 所以我不能堅持使用.war格式。 我試圖將Web應用程序上傳為目錄。以下是我的Java代碼,將“ examplewebapp”上傳為目錄。

    String appPath="/home/examplewebapp"; // webapp
    String currentDir = new File(".").getCanonicalPath();
    String tomcatDir = currentDir + File.separatorChar + "tomcat";


    Tomcat tomcat = new Tomcat();
    tomcat.setBaseDir(tomcatDir);
    tomcat.setPort(4040);
    tomcat.addWebapp("/examplewebapp", appPath);        
    tomcat.start();

但是Web應用未按預期部署在服務器上。 我需要知道tomcat.addWebapp()方法僅支持.war格式,還是我的代碼中有任何錯誤。

步驟1:查閱Lars Vogel教程的第4章,了解如何在Eclipse中添加Tomcat並遵循他的指示。

步驟2:單擊您的Web項目,然后轉到步驟3。

點擊Web項目

步驟3:單擊Run(運行),然后讓Eclipse啟動Tomcat。

點擊運行

步驟4:選擇“在服務器上運行”,然后單擊確定。

在服務器上運行

步驟5:選擇現有服務器,並有選擇地啟用該復選框。

選擇現有服務器

步驟6:盡情享受!

請享用

我認為上面的代碼有兩個錯誤

第一步沒有路徑到正確的文件夾(字符串appPath =“ / home / examplewebapp”; // webapp)

第二,您需要調用tomcat.getServer()。await(); 之后tomcat.start(); 因為服務器將在啟動后退出。

見下面的例子

字符串webappDirLocation =“ src / main / webapp /”; Tomcat tomcat =新的Tomcat();

    //The port that we should run on can be set into an environment variable
    //Look for that variable and default to 8080 if it isn't there.
    String webPort = System.getenv("PORT");
    if(webPort == null || webPort.isEmpty()) {
        webPort = "8080";
    }

    tomcat.setPort(Integer.valueOf(webPort));

    tomcat.addWebapp("/", new File(webappDirLocation).getAbsolutePath());
    System.out.println("configuring app with basedir: " + new File("./" + webappDirLocation).getAbsolutePath());

    tomcat.start();
    tomcat.getServer().await();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM