Netbeans 附加的调试器不会在 jsp 页中的断点处停止



*请参阅帖子末尾的编辑2

我可以毫无问题地调试我的.java类。我使用套接字(SocketAttach)连接了调试器,主机是本地主机,处于调试模式时的端口是8000。

但是我正在尝试调试 jsp 页面中的函数,例如

<%
...
ArrayList list = vb.getStuff(); 
...
Iterator it = list.iterator();
while (it.hasNext()){
...
//I show my list items in a table
...
}
%>

当我放置断点时

ArrayList list = vb.getStuff();

不会停止在它上面,即使我在正确的行上看到我的断点。

在我的调试器控制台中,我看到

JspLineBreakpoint myPath/mylist.jsp : 48 partially submitted - not into all classes, reason: No executable location available at line 48 in class org.apache.jsp.portal_jsp.

但断点留在那里。

我在 Netbeans 中有一个项目,所以它不会与其他项目混淆...

任何帮助不胜感激,非常感谢。

PS:这里有一些有用的东西 ->

产品版本:NetBeans IDE 8.0.2(内部版本 201411181905)更新:NetBeans IDE 已更新到版本 NetBeans 8.0.2 补丁 2爪哇: 1.8.0_65;Java HotSpot(TM) 64-bit Server VM 25.65-b01运行时: Java(TM) SE 运行时环境 1.8.0_65-b17系统:在amd64上运行的Windows 7版本6.1;CP1252;

编辑:我忘了说我正在使用雄猫7

编辑2:我刚刚意识到我可以调试从那里调用的函数,写在jsp页面中。

当我放置断点时

ArrayList list = vb.getStuff();

它不会停止,即使我在右侧看到我的断点 线。

但是,如果我在该函数的第一行(也在 jsp 页面中)放置一个断点,我将能够调试它。我想这是因为它在一个函数中...前面带有ArrayList的代码不是。因此,调试器将跳过最初执行的代码,这些代码不包含在函数中...

有什么解释为什么吗?它是否认为它是"html代码"的一部分并跳过它,但是当它看到我调用了该函数时,它会对其进行调试?

这可能是由于项目中的代码与服务器上运行的代码不匹配,尽管也可能是由于您使用的服务器类型(例如,Weblogic通过在jsp更改时编译jsp来自动生成servlet类)。 这种类型的不匹配会使调试变得"有趣",因为某些代码会对齐,但其他部分不会,这使得断点上的设置和中断变得不稳定。 最好的办法是重新生成和重新部署,或者在调试源中,将 jsp 源部署为源的目录,并从源中删除项目代码。 我很确定当服务器使用端口和定义设置运行时,这可以工作,以便您可以附加调试器(在本例中),而不是从 IDE 运行服务器。 希望这能帮助某人(有一天...

我在

使用 Netbeans 8.2 和 Glassfish 4 时遇到了类似的问题,但仅限于某些 Web 项目。

失败的项目Web Pages Folder设置为../other/web2,而不仅仅是web(需要组织团队合作)。

将资源复制到web/后,我还必须清除 Netbeans 缓存文件夹以使其再次工作。

最新更新