0

是否可以在“调试模式”下启动 Tomcat(通过 Eclipse 启用 JPDA 进行远程调试会话)并让它在正常/生产模式下服务于数百个用户的请求,但只能在调试模式下“行动”(跳转到断点,允许我为单个用户逐行执行代码,检查变量值等)?

如果是这样,怎么做?如果不是,为什么?

4

1 回答 1

2

抱歉,没有。JPDA 是全有或全无的选择。整个应用程序要么可用于调试,要么都不可用。

您可以做的是隔离单个请求,然后从那里逐步执行代码。一种方法是编写一个过滤器,只为特定用户执行给定的代码行,然后在该行上放置一个断点。然后,您可以单步执行该用户的代码。您无法做的是在应用程序的其他地方添加更多断点,因为它们可能会被任何用户击中。

一个可能的扩展是在您的过滤器中为这个单个用户设置一个请求属性,然后在应用程序代码中为该属性添加测试。然后,您可以在仅当请求属性为真时才执行的代码中放置断点。这是一个相当侵入性的解决方案。

于 2013-11-27T10:35:48.030 回答