使用Java将Web应用程序上载到tomcat

时间:2015-01-23 11:13:28

标签: java apache tomcat automation

在我的单元测试中,我使用 org.apache.catalina.startup.Tomcat 来部署Web应用程序。我可以使用.war格式部署webapp而没有任何问题。 但在我的情况下,我想从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格式或我的代码中有任何错误。

2 个答案:

答案 0 :(得分:0)

第1步:咨询Lars Vogel's 4th chapter of his tutorial how to add Tomcat in Eclipse并按照他的指示行事。

步骤2:单击您的Web项目并转到步骤3.

Click on Web Project

步骤3:单击Run,让Eclipse启动Tomcat。

Click Run

步骤4:选择“在服务器上运行”并继续执行确定。

Run on server

步骤5:选择现有服务器并选择启用复选框。

Choose existing server

第6步:享受!

enjoy

答案 1 :(得分:0)

我认为上面的代码中有两个错误

第一个yon没有路径到正确的文件夹(String appPath =“/ home / examplewebapp”; // webapp)

第二,你需要打电话   tomcat.getServer()等待();在tomcat.start()之后;因为服务器在启动后会退出。

见下面的例子

String webappDirLocation =“src / main / webapp /”;         Tomcat tomcat = new 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();
}