我想在eclipse中调试一个webapp。我发现tomcat和webapp在调试模式下在eclipse中运行,但是webapp代码中的断点没有效果。
详情
webapp是一个maven工件,我在eclipse中使用m2e插件来连接maven和eclipse。
我设法从eclipse中启动了tomcat服务器。如果我选择的话,webapp很好地在tomcat中启动,也在调试模式下启动:
tomcat服务器启动运行,其stdlog打印到eclipse中的一个窗口。我也可以方便地停止它并在调试模式下再次启动它。到目前为止,这就是我想要的和我期望的。
问题
我在webapp的代码中设置了一个断点,并在eclipse中以调试模式重启tomcat。现在,断点没有活动:它没有活跃断点所具有的那个小标记,我知道代码已经执行,但它并没有在断点处停止。
答案 0 :(得分:3)
有两种方法可以解决这个问题,你需要其中一种或两种。打开运行配置,然后
问题+解决方案1(前叉)
如果tomcat在另一个VM中分叉,那么您需要添加参数 forkMode ,其值为从不。这使得eclipse可以通过"到tomcat的VM并在那里设置断点。
问题+解决方案2(来源)
在具有maven父项和子项工件的某些设置中,可能会发生eclipse不知道某个子项目的源属于您的webapp。这种情况的症状是执行在断点处停止,但是eclipse不会自动跳转到源位置,而是告诉您源是未知的。
要解决此问题,您需要将子项目的源添加到运行配置中:在运行配置中,转到Source>添加...> Java Project并选择包含您可能要调试的源代码的所有相关项目。
答案 1 :(得分:0)
转到eclipse调试视图,如果选中该复选框,请检查断点的断点选项卡视图。