本页描述在 WebSphere Application Server 上调试应用程序时可能遇到的局限性以及用于消除这些局限性的建议方法。另请参阅产品自述文件,该文件可能包含此调试器的其他局限性。
调试 Web 对象
- 在服务器上执行调试之前,可能需要增大
Java™
通信超时设置:如果在将调试器连接至应用程序时遇到困难,则可能需要增大 Java 调试超时设置。要确定您是否遇到此问题,请检查
<workspace>\.metadata\.log
文件以了解是否存在 org.eclipse.jdi.TimeoutException
消息。要增大 Java
超时设置,请从工作台菜单栏中选择窗口 > 首选项。展开 Java 节点并单击调试。在调试首选项页中,增大通信超时,包括调试器超时(ms)和启动超时(ms) - 建议您将这两个字段的缺省值至少增大一倍。如果未增大超时设置,当您在服务器上执行调试时,调试器就会被挂起。
对于在
WebSphere®
Application Server V6.0 或更高版本上运行的应用程序,可通过在服务器视图中右键单击该服务器并从弹出菜单选择重新连接调试进程来尝试重新连接。
- “找不到源”编辑器可能意外关闭:在某些情况下,调试器找不到源编辑器可能会意外关闭,该编辑器提供了一个可以用来编辑源查找路径的按钮。要编辑源查找路径,在调试视图中右键单击某个对象并从弹出菜单中选择编辑源查找。
- 对于某些 EJB home 方法,逐步调试方式将失败:如果使用 WebSphere Application Server 调试适配器来启动调试会话,则对于某些 EJB home 方法,逐步调试方式将不会停止。如果想要调试这些方法,应使用断点。
- 不支持从 Java
单步返回至 JavaScript™:如果想要能够从
Java 返回至
JavaScript
代码,应使用断点。
- 调试 JSP 页:
- 在调试 JSP 页时,不支持 EL(表达式语言)。例如,您不能单步跳入包含 EL 的 JSP 行。
- 逐步调试不适用于不包含任何可执行代码的 JSP 页。
- 不支持检查和显示 JSP 变量和表达式。
- 在 JSP 页中,不支持“运行至行”。
- 设置 JSP 文件断点可能会很慢。如果具有许多 JSP 文件断点,则调试器将花费更多时间来进行初始化。
- JSP 声明块中的静态变量上的断点将不起作用,并且可能导致其他断点问题。
- 热交换之后的堆栈帧标注:如果在热代码替换之后某些堆栈帧具有类似如下的标注:
<unknown receiving type>(<unknown declaring type>).<unknown method name>(<unknown arguments>) line: not available <unknown line number>
可通过切换至另一透视图然后返回“调试”透视图来获取正确的标注。
- 当调试 Java
时,您可能会在控制台视图中接收到 TimeoutException 错误。如果出现此错误消息,则增加调试器超时的时间量可以防止此错误。要增加调试器超时的时间量,从工作台菜单栏中选择窗口 > 首选项以打开 首选项对话框。在此对话框中,打开 Java 节点并选择运行/调试节点。在产生的调试首选项页面中,增加通信部分中调试器超时字段的值。
JSP 页调试:
- 可以在 JSP 文件中的下列标记内设置断点:
- 格式为 <% %> 的 JSP scriptlet
- 格式为 <%= %> 的 JSP 表达式
- 格式为 <%! %> 的 JSP 声明
- jsp:useBean、jsp:getProperty 和 jsp:setProperty 标记
- 定制标记
- 不能为下列标记集设置断点:
- HTML 代码
- JSP 伪指令
- 所有其他标准 JSP 标记(jsp:include 和 jsp:forward 等)
- 如果要将工作空间从 WebSphere
Studio 的较旧版本迁移至此版本,则您将需要删除 JSP 文件断点并重新创建。
热方法替换
- 对源代码的更改不能影响类形状。这意味着对方法主体的更改将被热替换,而下列更改是将不会被热替换的更改的一些示例:
- 对类结构的更改,例如,除去/添加方法
- 对类变量的修改
- 对内部类的更改
- 对底部堆栈帧中的代码(main(...) 方法)的更改不能被热替换。
- JSP 页调试不支持对 Java
代码进行热方法替换。
双向(BIDI/BiDi)语言局限性
当调试不是以本机代码页编码的 JSP 文件时,将不能使用“调试器”编辑器。