我正在尝试在this tutorial
中构建并运行我自己的示例版本我做了一个eclipse项目,它运行带有检测的HelloWorld类。如果我使用从该页面底部的链接下载的loggeragent.jar,它可以正常工作。但是如果我构建loggeragent.jar(来自相同的源代码),它会在method.insertBefore()中抛出异常:
无法检测HelloWorld,异常:[源错误]语法错误“r($ 1)+”)附近;“
根据调试器,它尝试插入的签名字符串:
“main(”+“args”+“=”+ org.slf4j.instrumentation.ToStringHelper.render($ 1)+“)”
现在,我需要对某些导入进行一些更改以获取要构建的代码。特别是,我需要添加import org.slf4j.instrumentation.JavassistHelper;。所以可能是两个罐子没有使用相同版本的JavaassistHelper,但我找不到另一个版本。
知道为什么这不起作用?另外,你能解释一下JavaassistHelper的作用,还是指向我的手册?
答案 0 :(得分:1)
我发现了问题所在 - 示例代码中存在错误 - 它说
method.insertBefore(ifLog + "_log.info(\">> " + signature + ");");
应该说什么
method.insertBefore(ifLog + "_log.info(\">> " + signature + "\");");
(在结束时错过了一个“。”