【问题标题】:Can't find source for specific jar/class when debugging tomcat in eclipse在eclipse中调试tomcat时找不到特定jar/类的源
【发布时间】:2010-09-21 19:52:09
【问题描述】:

我是 java/eclipse 开发的新手,我在调试我公司使用的 Web 应用程序中特定 jar 的代码时遇到了一些问题。

首先,我已经正确设置了 Tomcat,并且可以成功运行 webapp(除了我要查找的错误!)。 webapp 的 lib 目录中有大约两打 jar 文件,当我尝试调试其他 jar 中的文件时,调试器会正确捕获它们的断点,并且一切正常。我在新 jar 中的代码中设置的断点被跳过,当我沿着调试堆栈进一步捕获断点时,任何单击我感兴趣的类的尝试都会导致“找不到源”。

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

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

有什么想法吗?

【问题讨论】:

  • 我刚刚注意到的一件事 - 每次我在选择源查找路径后单击“确定”时,代码会在窗口中闪烁几分之一秒,然后再次显示“未找到源”消息。它是如此之快,我无法 100% 确定这是我正在寻找的文件,但我相当肯定它是。这说明什么?是否有可能显示某些内容的 Eclipse 错误日志?这只是一个日食错误吗?

标签: java eclipse debugging tomcat


【解决方案1】:

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

【讨论】:

  • 当我将源查找路径添加为当前位于工作区中的 Java 项目时,难道不应该保证它位于正确的位置吗?这就是我添加其他可调试的 jar 的方式。
【解决方案2】:

原来我错过了一个项目被重命名、移动到不同的 repo 并且具有几乎相同的包名称的事实......操作词是“几乎”。感谢 locka 的唯一回复!

com.companyname.java.x.y.z.classname != com.companyname.java.y.z.classname

【讨论】:

    【解决方案3】:

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

    即使你使用 spring 也请在 main 函数中运行程序;

    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();
    
    } 
    

    【讨论】:

      猜你喜欢
      • 2014-02-03
      • 2011-12-04
      • 2010-12-29
      • 2012-07-04
      • 1970-01-01
      • 1970-01-01
      • 2012-04-13
      • 2011-09-04
      相关资源
      最近更新 更多