Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何跟踪/调试Apache Camel或AOP修改的代码?_Java_Debugging_Aop_Trace_Apache Camel - Fatal编程技术网

Java 如何跟踪/调试Apache Camel或AOP修改的代码?

Java 如何跟踪/调试Apache Camel或AOP修改的代码?,java,debugging,aop,trace,apache-camel,Java,Debugging,Aop,Trace,Apache Camel,我正试图使用ApacheCamel从Eclipse调试一个Web应用程序,当我“跟踪”到某个点时,Eclipse说没有可用的源文件,我可以看到Eclipse中显示的字节码(通常我可以看到源代码),但显然我无法进入该字节码(我尝试了“F6/Step Over”,但什么也没有发生)(与源代码相比,它并不是那么有用) 那你怎么能追踪到这样一只野兽呢 我想知道所有这些代码生成/代码截取层产生的问题是否比他们试图解决的问题还多。只要一切正常,这似乎是有帮助的,但一旦出现问题,就很难诊断 编辑我不想跟踪Ap

我正试图使用ApacheCamel从Eclipse调试一个Web应用程序,当我“跟踪”到某个点时,Eclipse说没有可用的源文件,我可以看到Eclipse中显示的字节码(通常我可以看到源代码),但显然我无法进入该字节码(我尝试了“F6/Step Over”,但什么也没有发生)(与源代码相比,它并不是那么有用)

那你怎么能追踪到这样一只野兽呢

我想知道所有这些代码生成/代码截取层产生的问题是否比他们试图解决的问题还多。只要一切正常,这似乎是有帮助的,但一旦出现问题,就很难诊断


编辑我不想跟踪Apache Camel本身。我只想跟踪一个使用Apache Camel的程序,我意识到事情很快就会变得非常混乱:基本上你会失去跟踪能力,因为你从Java源代码跳到“某物”.Apache Camel不执行任何字节码操纵器或指令插入。如果使用Camel代理功能,它最多使用JDK库中的代理

因此,一定是其他库导致eclipse调试器无法进入源代码

ApacheCamel的所有源代码都使用maven标准作为源JAR分发。 如果您使用maven,那么有一个maven命令来下载-source JAR,我假设Eclipse可以使用它


我没有使用Eclipse,而是使用IDEA,它可以从maven repos自动下载源代码JAR。

要调试由CGlib或JDK代理代理的代码,请将调试器导航到调用代理代码的行

public void foo() {
  serviceWithProxy.bar(); // put breakpoint here
}

…现在,在您进入
serviceWithProxy.bar()
之前,按
Ctrl+T
(Eclipse)并选择要调试的类型(例如
ServiceWithProxyImpl
)。将断点放在
ServiceWithProxyImpl.bar
的第一行(Eclipse会自动将您导航到那里),然后按“继续”在调试器中。这是在调试时跳过代理的最简单方法。

获取此消息的类是什么?Apache Camel是开源的。获取源代码并将其附加到Eclipse中的库中,您将能够调试到其中并查看源代码。