代码之家  ›  专栏  ›  技术社区  ›  Dave Novelli

在eclipse中调试tomcat时找不到特定jar/类的源代码

  •  2
  • Dave Novelli  · 技术社区  · 15 年前

    我对java/eclipse开发相当陌生,在调试公司使用的web应用程序中特定jar的代码时遇到了一些问题。

    我单击“编辑源代码查找路径…”按钮,单击包含代码的项目,它只会返回“未找到源代码”错误。我尝试将查找路径设置为项目、文件系统目录和工作区项目。每次都是一样的结果。

    我对调试器如何准确地将调试堆栈窗口中的特定函数调用与源代码联系起来有点模糊——它仅仅基于课程文件的包和类名吗?如果是的话,我不明白为什么它不起作用。

    有什么想法吗?

    3 回复  |  直到 15 年前
        1
  •  0
  •   locka    15 年前

    确保指向正确的目录。如果班级是com.foo.SomeClass类然后需要将src目录设置为基本目录,以便Eclipse可以找到$basedir/com/foo/SomeClass.java文件. 这不一定是项目的根,它可能是$project/src,甚至对于Maven项目是$project/src/main/java。

        2
  •  0
  •   agf    14 年前

    原来我忽略了这样一个事实:一个项目被重命名,移动到另一个repo,并且有一个几乎相同的包名。。。最重要的是“几乎”。感谢骆家辉的唯一回应!

    com.companyname.java.x.y.z.classname != com.companyname.java.y.z.classname
    
        3
  •  0
  •   phil    12 年前

    我有一个建议可以用另一种方法解决你的问题: 如果你想调试一些不包含tomcat lib或其他绑定到tomcat的lib的东西,比如struts2,它需要处理请求和响应。

    即使使用spring,也请在主功能中运行程序;

    public static void main(String[] args) { 
    
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
                        "classpath*:/applicationContext.*.xml"); // check your applicationCntext formate , maybe applicationContext-*.xml ;
    
        context.afterPropertiesSet();
        find(context);
    }
    private static void find(ClassPathXmlApplicationContext context) {
    
        Map beans = getContext().getBeansOfType(SomeCLass.class);
     SomeCLass   bean=beans.values().iterator().next();
    bean.callFunction();
    
    }