Netbeans附加调试器在jsp页面

时间:2016-03-22 15:46:29

标签: java jsp debugging netbeans

*请在帖子末尾看 EDIT 2

我能够毫无问题地调试我的.java类。我使用套接字(SocketAttach)连接调试器,主机是localhost,当我在调试模式下的端口是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中有一个项目,所以它不会与其他项目混淆......

感谢任何帮助,非常感谢。

P.S:这里有一些有用的东西 - &gt;

产品版本:NetBeans IDE 8.0.2(Build 201411181905) 更新:NetBeans IDE已更新为NetBeans 8.0.2 Patch 2版本 Java:1.8.0_65; Java HotSpot(TM)64位服务器VM 25.65-b01 运行时:Java(TM)SE运行时环境1.8.0_65-b17 系统:在amd64上运行的Windows 7版本6.1; CP1252;

编辑:我忘了说我使用的是tomcat 7

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

  

当我在

上设置断点时
ArrayList list = vb.getStuff();
     

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

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

为什么要解释?它是否认为它是&#34; html代码的一部分&#34;然后跳过它,但是当它看到我调用了函数时,它会调试它吗?

2 个答案:

答案 0 :(得分:0)

这可能是由于项目中的代码与服务器上运行的代码不匹配,但也可能是由于您正在使用的服务器类型(Weblogic例如通过编译jsp来自动生成servlet类)它改变)。这种类型的不匹配可以使调试变得“有趣”,因为一些代码会排成一行,但其他部分则不会,如果是这样,就会设置和破坏断点。最好的办法是重建和重新部署,或者在调试源中,设置将jsp源部署为源的目录,并从Sources中删除项目代码。我很确定当服务器运行端口和定义设置时,这可以工作,这样您就可以连接调试器(如本例所示),而不是从IDE运行服务器。希望这有助于某人(有一天......)

答案 1 :(得分:0)

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

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

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