[英]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。
步驟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.