Tag: load time weaving

方面在运行时编织

我正在寻找一种Java解决方案,它允许我在运行时使用AOP在已经运行的代码之上编写新代码。 关键是不要求重启JVM。 此外,我想在运行时删除编织,让旧代码在编织之前运行。 我在想AspectJ加载时编织+运行时类加载/卸载会做到这一点。 有人试过吗? 有什么建议? 谢谢。

如果没有-javaagent vm选项,Spring AspectJ编织如何工作?

我知道Spring避免使用-javaagent vm选项以使其AspectJ加载时间编织工作,而是依赖于类加载器来启动代理。 我认为Java规范规定使用Java代理的唯一方法是通过-javaagent vm选项。 我错了吗? 有人可以指示我使用官方的Java规范/文档来澄清我的审讯吗?

AspectJ加载时编织签名jar

是否有人成功使用带有签名jar的AspectJ加载时编织? 我有一个例外,不知道如何解决它(使用AspectJ 1.6.8-16.10测试): Exception in thread “main” java.lang.NoClassDefFoundError: com/package/clazz$AjcClosure1 at com.package.test.main(test.java:55) Caused by: java.lang.ClassNotFoundException: com.package.clazz$AjcClosure1 at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClassInternal(Unknown Source) … 1 more 坦率地说我事件不确定它是否在技术上可行,但我知道类似的问题(使用来自已签名的java类的动态生成的java代码)是为Hibernate项目完成的(即使用Javassist而不是CGLIB)。 细节在这里 。

如何使用AspectJ和Tomcat配置加载时编织?

我试着用下一种方式配置加载时织入(用于使用Perf4J进行分析): 1)我将aop.xml添加到META-INF文件夹。 部署时,META-INF放置在工件根目录(即MyAppDeployed/META-INF )中。 2)我将aspectjrt-1.6.1.jar , aspectjweaver-1.6.1.jar , commons-jexl-1.1.jar , commons-logging.jar放到Tomcat/lib文件夹中(起初我尝试了MyAppDeployed/WEB-INF/libs但它也没有用)。 3)我在启动Tomcat时向VM选项添加了-javaagent:C:\apache-tomcat-6.0.33\lib\aspectjweaver-1.6.1.jar 。 4)我的aop.xml : 我没有看到任何迹象表明装载时编织发生。 既没有错误报告也没有必要的结果。 我唯一的错误信息是: Error occurred during initialization of VM agent library failed to init: instrument Error opening zip file: C:\apache-tomcat-6.0.33\lib\wrong-jar.jar 如果我在指定javaagent参数时在aspectjweaver-1.6.1.jar名称中输入错误。 如果写得正确 – 不会打印错误信息。 任何想法,我做错了什么? PS我使用Java 5,我尝试使用1.5.4版本的aspectj完全相同的结果。

AspectJ AOP LTW无法动态加载javaagent

这是我的非工作项目示例 。 它包含2个模块: aop-lib – 用作lib的方面。 它包含以下类 Wrap.java – 它是用于附加建议的注释 WrapDef.java – 它是上面提到的Wrap注释的定义。 aop-app – 使用上面的方面lib DynamicLoad.java – 动态加载javaagent的类 Main.java – 使用Wrap注释的主类。 目录结构如下: . ├── README.md ├── aop-app │ ├── pom.xml │ └── src │ └── main │ └── java │ └── com │ └── aop │ └── app │ ├── DynamicLoad.java │ └── Main.java […]