java - 嵌入式 Tomcat 不启动

标签 java tomcat

我正在尝试在 Tomcat 的嵌入式实例上运行 Web 应用程序。所以我把它放在目录 webapps 上,然后运行以下代码

public static void main(String[] args) throws Exception {
    String currentDir = new File(".").getCanonicalPath();       
    String appBase = currentDir + File.separatorChar + "webapps";  
    System.out.println(appBase);
    Integer port = 4040;
    Tomcat tomcat = new Tomcat();
    tomcat.setPort(port);
    tomcat.setBaseDir(".");

    tomcat.addWebapp("/myTools.war", appBase);
    tomcat.setHostname("localhost");
    tomcat.start();

    while (true) {
        Thread.sleep(999999999);
    }
}

Tomcat 实例似乎启动了(尽管我收到了一些类型为“Could not get url for/javax/servlet...”的警告,但我读到这是正常的)。但是,当我连接到 localhost:4040 或 localhost:4040/myTools 时,我只看到一个空白页面(或 Tomcat 警告该地址不存在)。我还尝试将war扩展到一个目录中并使用

tomcat.addWebapp("/myTools", appBase);

但没有任何改变。关于如何使其发挥作用的任何想法?

最佳答案

请去掉结尾处的(恐怖的)endless while 斜坡并将其替换为:

tomcat.getServer().await();

关于java - 嵌入式 Tomcat 不启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23651097/

相关文章:

java - Spring 4/Groovy DSL - Autowiring

带有 CDI、JPA 和 javafx-maven-plugin 的 JavaFX

java - 如何在java中获取调用层次结构

tomcat - SOLR + SSL 抛光查询中的字符

java - 如何修复无法在maven springmvc元素的maven构建中加载css文件

java - AndroidJUnit4.class + org.junit.Assume.assumeTrue = AssumptionViolatedException

java - 用 Java 可视化麦克风音频

java - 如何使用 maven 插件向嵌入式 tomcat 添加依赖项?

tomcat - Gradle Tomcat 插件设置 JVM 参数

html - 如何使用 token 控制对 Tomcat 5.5 中 HTML 页面的访问