首页 > 解决方案 > Eclipse IDE 调试 servlet 代码一个变量未在“变量”选项卡中注册

问题描述

我有以下实现javax.servlet.Filter. 在ecipe中调试(附加到远程 WL 服务器)时,我想查看分配给这个继承代码的值,reqMap但是从变量选项卡中我没有看到该变量已注册。我当然可以request.getParameterMap()从该选项卡中看到值和所有其他变量。我不确定为什么reqMap不被识别......这是我的第一个问题。

请耐心回答第二个问题。我还注意到,在调试代码时,即使我想通过Step Overservlet从断点逐行检查,也会跳过一些语句。我不明白为什么.. 我想查看一个特定的 stmt,但它甚至从Step Over动作中被跳过。

我希望有人可以加深我对遇到的奇怪调试问题的理解。

public class FooFilter implements Filter {
    @Override
    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain fc) throws IOException, ServletException {
    HttpServletRequest request = (HttpServletRequest) req;
    
    // I added this stmt as debugging purpose
    Map<String, String[]> reqMap = request.getParameterMap();

    HttpServletResponse response = (HttpServletResponse) resp;
    ServletOutputStream out = response.getOutputStream();
    

标签: javaeclipseremote-debugging

解决方案


Eclipse 做了一些奇怪的事情。但请尝试刷新您的 jar 并刷新项目文件夹。可能存在您可能超出范围的情况。


推荐阅读