我们试图用Java字节码为本地Thread对象编织Aspectj。我们正在遇到类加载器问题,因为方面方面运行时编织必须为方面建议使用与rt.jar相同的类加载器。
有没有人成功做到这一点?由于其他要求,我们无法使用加载程序相似性来解决此问题。
该应用程序已部署在Liberty Server实例上。
该方面是此示例的实现:
public aspect ThreadStartInterceptor {
before(Thread childThread) :
Long parentId = new Long(Thread.currentThread().getId());
Long childId = new Long(childThread.getId());
call(public void Thread+.start()) && target(childThread){
System.out.printf("%s%n Parent thread: %3d -> %s%nChildthread:
%3d -> %s " , thisJoinPoint,
parentId,
Thread.currentThread().getName(),
childId,
childThread.getName()
);
SingletonCache.addCacheContext(
childId.toString(),SingletonCache.getCachedContext(parentID.toString()))
}
}