【问题标题】:Tomcat manager not showing up with embedded versionTomcat 管理器未显示嵌入式版本
【发布时间】:2012-07-04 02:00:46
【问题描述】:

我正在使用 tomcat maven 插件,版本 2.0-beta-1 和 tomcat6 版本。我可以使用命令

mvn tomcat6:run

我可以访问我的网络应用程序。但我无法访问管理器应用程序。我尝试时得到一个空白页:

http://localhost:8080/manager
http://localhost:8080/manager/html

我尝试配置tomcat-users.xml文件,但还是什么都没有……

会不会是关机命令不起作用的原因?

mvn tomcat6:shutdown

知道为什么它不起作用吗?我已经在谷歌上搜索了很长时间,但没有找到任何东西。

【问题讨论】:

  • 我没有在我的 pom.xml 文件中添加任何额外的 参数

标签: java maven tomcat6 maven-tomcat-plugin


【解决方案1】:

当然@olamy 是正确的(他应该知道,他构建了它),因为 Tomcat Maven 插件不运行管理器应用程序。

但是,如果您只想在 Eclipse 中运行 WAR 并对 servlet 容器进行大量控制,我强烈建议您在简单的 Java 命令行应用程序中运行嵌入式 Tomcat。你甚至可以调试你的 WAR 代码,当它退出时,它也会关闭 Tomcat。

我在这里编写了一个小包装应用程序来满足我的需求(它还托管 Jetty 和 Glassfish,但不完全): https://bitbucket.org/mckamey/war-bootstrap

我使用的专门设置和运行 Tomcat 的代码基本上是这样的:

Tomcat server = new Tomcat();
server.setBaseDir(new File("tomcat").getCanonicalPath());
server.setPort(port);

// I have a Map<String,String> of CONTEXT=WAR pairs
for (String contextPath : contexts.keySet()) {
    String warPath = contexts.get(contextPath);
    server.addWebapp(contextPath, warPath);
}

server.start();

// do something to prevent this thread from ending
System.out.println("Press ENTER to exit.");
System.in.read();

server.stop();
server.destroy();

还有更多示例:
http://people.apache.org/~markt/presentations/2010-11-04-Embedding-Tomcat.pdf

【讨论】:

    【解决方案2】:

    管理器应用未与嵌入式版本一起部署。 你的用例是什么? CTRL+c 将关闭 maven 和嵌入的 tomcat。

    【讨论】:

    • 我的情况是,我想从 Eclipse 作为外部工具运行它。但是,如果我停止在 Eclipse 控制台中启动的进程,Tomcat 仍在运行。作为tomcat JVM的控制台的“子”线程没有被杀死。我希望有一种方法可以从 Eclipse 中关闭它,而不是使用 Ctrl+C
    • 本例中的子线程在 Maven 构建线程中。 Tomcat 嵌入在同一个线程中启动(没有 jvm 分叉)。对不起,我不使用 eclipse,但也许有办法停止 maven 构建?
    • 只有 CTRL+C...
    猜你喜欢
    • 1970-01-01
    • 2018-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-26
    • 2020-10-22
    • 1970-01-01
    相关资源
    最近更新 更多