带有JBOSS/Wildfly EJB 3类的Byte Buddy



我试图将所有方法拦截到运行在widlfly/jboss(在特定情况下是jboss EAP 7.3.x(下的javaEE应用程序中

但实际上EJB 3.x方法似乎并没有被所接受

我的代码是

new AgentBuilder.Default()
.type((ElementMatchers.any()))
.transform((builder, typeDescription, classLoader, module) -> builder
.method(ElementMatchers.any()).intercept(Advice.to(MyProfilerTimer.class)))
.installOn(inst);

因此,我启用了";任何";作为ElementMatcher,但在这种情况下,EJB也不被视为

ejb被公告为无状态(它们不是远程ejb(

@SuppressWarnings("all")
@Stateless(name = "MyEJBSession")
@TransactionAttribute(TransactionAttributeType.REQUIRED)
public class MyEJBSession 
{

我相信由于JBOSS逻辑通过代理或委派等来实例化它

你知道怎么加我的说情人吗?我正在使用最新的字节伙伴版本

感谢

Byte Buddy注册了一个隐式.ignore匹配器,该匹配器排除了合成类型、引导类加载器和Byte Budy自己的类型。大多数情况下,这是人们想要的,但如果您使用JBoss,它可能会生成标记为合成的类。可能,您需要注册一个不排除类的自定义忽略匹配器。

您还可以始终向代理生成器注册一个侦听器,以查看是否发现了该类。

最新更新