我想在Wildfly 18中部署的应用程序中添加一些跟踪方法。
我只看到第一个规则是从控制台输出(不是server.log )加载并打印的,而另一个规则从来没有打印过。
RULE show byteman is loaded
CLASS Main
METHOD main
AT ENTRY
IF TRUE
DO trace("Byteman at start");
traceln("Hey Byteman ");
ENDRULE
RULE Check Method1
CLASS com.xxx.xxx.MyClass
METHOD method1
AT ENTRY
IF true
DO trace("Method1 was called");
traceln("Method1 was called");
ENDRULE
RuleTriggerMethodAdapter.injectTriggerPoint : inserting trigger into org.jboss.as.server.Main.main(java.lang.String[]) void for rule show byteman is loaded
org.jboss.byteman.agent.Transformer : inserted trigger for show byteman is loaded in class org.jboss.as.server.Main
Rule.execute called for show byteman is loaded_0:1
HelperManager.install for helper class org.jboss.byteman.rule.helper.Helper
calling installed(show byteman is loaded) for helper classorg.jboss.byteman.rule.helper.Helper
Installed rule using default helper : show byteman is loaded
show byteman is loaded execute
Byteman at startHey Byteman
发布于 2021-01-11 22:31:17
这里的问题似乎是您的第二条规则没有被注入。Byteman跟踪只显示注入的第一个规则。您确定您的规则中包含正确的详细信息吗?
RULE Check Method1
CLASS com.xxx.xxx.MyClass
METHOD method1
...
com.xxx.xxx.MyClass类真的存在吗?
它有名为method1的方法吗?
这个类有没有加载过?
这个方法会被调用吗?
最后两个问题的答案看起来肯定不是yes,因为如果是这样的话,您会看到inject和trigger消息。
https://stackoverflow.com/questions/65113518
复制相似问题