【问题标题】:Why is Jetty hanging when I try to start it in debug mode?当我尝试在调试模式下启动 Jetty 时,为什么它会挂起?
【发布时间】:2011-01-05 07:31:08
【问题描述】:

我的问题是当我尝试在调试模式下启动 Start.java 时,Jetty 挂起。这是我的 Start.java 文件,取自 Wicket quickstart page

Server server = new Server();
SocketConnector connector = new SocketConnector();

// Set some timeout options to make debugging easier.
connector.setMaxIdleTime(1000 * 60 * 60);
.....
try {
    System.out.println(">>> STARTING EMBEDDED JETTY SERVER, PRESS ANY KEY TO STOP");
    server.start();
    System.in.read();
    System.out.println(">>> STOPPING EMBEDDED JETTY SERVER");
    // while (System.in.available() == 0) {
    //   Thread.sleep(5000);
    // }
    server.stop();
    server.join();
} catch (Exception e) {
.....
}

当我尝试联系http://localhost:8080 时,我得到:

HTTP 错误:503

访问问题/原因:

SERVICE_UNAVAILABLE

没有错误日志。出了什么问题,我该如何解决?

【问题讨论】:

  • 它在正常(非调试)模式下工作吗?您使用的是什么 Jetty 版本(来自 pom 的依赖)?你用的是什么调试器?
  • 正常模式也给出相同的结果,码头版本:6.1.25。调试器是标准的 IntelliJ 调试器。
  • 你确定所有线程都运行正常吗?在调试模式下,通常会出现“异常时自动停止”,这可能会导致一个或多个线程被调试器暂停,而其他线程同时运行。
  • @Altug:奇怪,就在上周,我使用人工制品创建了一个新的检票口项目,它运行良好,也在想法调试器中。您的 WicketApplication 类中是否正在进行任何初始化?它甚至到达那里吗?
  • @bert - 简单的 wicket 快速入门应用程序适用于 Start.java,但我的包含 Spring + Hibernate + Wicket 的应用程序不适用于该 Start.java,而且很奇怪没有随时随地登录。

标签: java testing jetty wicket


【解决方案1】:

我遇到了同样的问题,Wicket 在启动时挂起。在 log4j 中激活调试日志后,我发现它在从底层操作系统生成或读取随机数时挂起。

试试这个:http://docs.codehaus.org/display/JETTY/Connectors+slow+to+startup

【讨论】:

  • 嗨蒂姆,但其他小型检票口应用程序可以在相同模式下工作而无需挂起。我也会尝试你的解决方案。谢谢。
  • @Altug:试试看,如果有帮助,请告诉我。我认为我所说的随机只有在您使用 SSL/https 时才能获得......
【解决方案2】:

问题可能是由您的 IDEA 调试选项引起的。在每个断点的断点部分,都有一个暂停所有/线程选项。如果您在暂停所有线程的断点处停止,Jetty 将不会响应请求(因为它已被暂停)。将断点更改为“线程”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-06
    • 1970-01-01
    • 2013-01-01
    • 2021-09-10
    • 1970-01-01
    相关资源
    最近更新 更多