问题标签 [load-time-weaving]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
spring - jetty-maven-plugin 和 loadTimeWeaver
似乎无法让我的 spring webapp 与 jetty-maven 插件一起使用
我总是得到
虽然我有:
- 将 MAVEN_OPTS 设置为 javaagent:/Users/blabla/.m2/repository/org/springframework/spring-instrument/3.1.3.RELEASE/spring-instrument-3.1.3.RELEASE.jar
- 将 JAVA_OPTIONS 设置为相同的东西
- 将 dep 添加到spring-instrument和spring-aspects
- 添加
jvmArgs
到-javaagent:....
jetty-maven-plugin 配置
java - Spring maven 项目 BeanCreationException
我已经升级到 Spring 源代码 3.1.0,但我不确定为什么我的项目无法再找到
我已确保在我的构建路径中添加服务器运行时库,但我仍然以BeancreationExceptions
. 堆栈跟踪:
主要说明它与 RelectiveLoadTimeWeaver 有问题,
我曾经能够更新我的服务器的 context.xml 并添加 InstrumentalLoadtimeWeaver 加载器,但它不再有效。
编辑:完整的堆栈跟踪
maven - Junit 由于 Aspect 而失败
我有一个基于注释的自定义安全框架。当遇到方法的安全注释时,我使用 aspectj maven 插件来编织方面。
我使用 jenkins 来构建项目,并且为编译设置了 aspectj maven 插件目标,如下所示。
当junit运行时出现问题。由于它已经在方法中编织了与安全相关的注释,因此单元测试失败。
有没有办法让junits工作然后进行aspectj编织?由于我单独使用 .aj 文件,我不确定如何设置加载时间编织。
对此的任何帮助表示赞赏。
问候
java - OSGi WeavingHook 示例
有人有使用 OSGi 4.3+ Weaving Hook Service 的例子吗?AspectJ、ASM、JavaAssist 怎么样?有人真的在使用 OSGi WeavingHooks 吗?
OSGi Core 5.0.0 第 56.2 节中的示例简单地省略了实际的编织,并说“最终的编织留给读者作为练习”。
我的目标是:
- 创建一个可以放在字段(基元或对象)上的注释(@MyAnnotation)。
- 创建一个 org.osgi.framework.hooks.weaving.WeavingHook 以使用该注释编织类
- 使用加载时编织来切入具有该注释的字段的任何修改
- 触发字段被修改的 EventAdmin 事件。
- 动态更新来自 WeavingHook 的包连接以连接到 EventAdmin 包。
我的问题主要是#3。
我目前正在尝试使用 AspectJ WeavingAdaptor进行编织,但是在将方面库放入其中时遇到问题,因为它期望构造函数中的java.net.URL[] aspectURLs是罐子或目录它可以在文件系统上找到,而不是捆绑包。另外,我不确定如何通过回调到 GeneratedClassHandler 的acceptClass(String name, bytes[])方法来处理编织器生成的任何新类。
也许 WeavingAdaptor 不是开始编织的正确位置?或者也许我不应该使用 AspectJ?
MyAnnotation.java
MyWeavingHook.java
我的方面.aj
MyTestClass.java
我可以使用 Spring AOP,但我希望它适用于任何包,而不仅仅是通过 Spring 或 Blueprint 实例化的 bean。此外,Equinox Weaving 似乎还没有使用 OSGi 编织钩子规范,我不想被 Equinox 束缚。如果其他方法效果更好,我可以毫无问题地废弃 AspectJ。
参考一个类似的问题:使用 OSGi 时是否可以进行字节码操作?
更新:
最终结果是我刚刚使用 Equinox Aspects 并将其安装到 Karaf 中。是 3 个捆绑包、一个库和一个系统属性。我会一直使用它,直到他们将它更新为我们的 OSGi 编织,或者我编写自己的 OSGi 编织钩子以使用类似于 Equinox Aspects 的 AspectJ 代码。我不喜欢让 Equinox Aspects 工作所需的编织指标,因为它在要编织的包中的 AspectJ RT 上引入了 require-bundle/reexport 或 import-package。应该在捆绑包之外动态添加和建议此依赖项。
spring - 在不在我的项目中的类上加载时间编织
我正在尝试使用 Spring 为我创建的项目中的几个类提供加载时间编织。当我调用一个不在本地项目中的类时,我无法让它工作。
我创建了一个名为的类ExampleClass
,当我在其中执行@Around
一个方法时,我可以看到我对返回所做的修改,但是当我尝试对返回做同样的事情时,String
我无法得到任何结果。
这是我的Aspect
代码:
这是我对该代码的调用:
的内容my-context.xml
只是一个<context:load-time-weaver />
.
我有一个aop.xml
定义,正如我所说的适用于一个类,但不适用于另一个类:
我是否遗漏了什么,或者这是 Spring 和 AspectJ 的限制?
aspectj - 编译类文件的类型间声明
是否可以在加载时编织时使用 AspectJ 在编译的类文件上进行类型间声明?
举个例子:我编译了一些 Groovy 代码,想用 IDT 添加字段或方法。
java - 任何与 JRockit 的 Weaving/AOP API 等效的 OpenJDK?
我对JRockit 的内置编织/AOP 支持印象深刻。OpenJDK 上的 AOP 编织是否有任何类似易于使用的支持?
我尝试检测的代码通常是通过 Maven 加载的,因此连接到类加载器以例如安装编织类加载器可能很困难。基于 JMTI 的解决方案可能实用,也可能不实用。
tomcat - 部署到单个 JVM 的所有应用程序的 AspectJ LTW
我已将我的 aspectJ 方面捆绑到单个 War (aspectsWar.war) 文件中,并将其部署到具有现有正在运行的应用程序的应用程序服务器上,并在 tomcat 服务器上使用带有 javaagent 的 LTW 编织。
我可以看到切面拦截了 aspectWar.war 上的调用,但看不到在同一 jvm 上运行的其他应用程序上。
有没有办法让我的aspectj方面识别和编织所有其他正在运行的应用程序(最好不必修改各个war文件),可能是通过对应用服务器的一些自定义类加载更改......
注意:这是单独使用 aspectJ,没有任何与 Spring 相关的集成。
请指教。
spring - AspectJ 方面没有使用 @RequestMapping 注释编织 Spring MVC 方法
我有一个独立的 aspectJ 库(与 spring 没有任何关系),我将它添加到应用程序服务器类路径中,以使用加载时间编织来监视正在运行的应用程序
该切面与所有方法(域、服务、DAO ...)完美配合,但由于某种原因,即使切入点表达式与控制器类和方法名称匹配,它也无法识别带有 @RequestMapping 注释的 Spring MVC 方法
对于需要单独处理的 Spring MVC 控制器映射方法(或通常来自其他框架的控制器)是否有不同的规则。
该切面编织到 @Controller 类中的其他公共和私有方法中,但没有专门编织到 @RequestMapping 方法中。
注意:我不是在寻找特定于 Spring MVC 的解决方案(除非它是唯一的选择),我希望能够编织到任何类型的类和方法中,而不管框架如何,而无需修改正在运行的应用程序。
这是我的代码。
}
}
spring - Spring Tomcat6“没有可用的LoadTimeWeaver”代码配置的webapp上下文错误
我正在开发一个基于 Spring 3.2.1 的 webapp (RestFull Services) 以部署在 Tomcat 6 服务器上。由于来自其他自定义依赖项项目的 Jpa、事务和功能,我必须启用 loadTime 编织。为此,我首先在 app /META-INF 中配置了我的 context.xml,并添加了:
然后我将spring-instrument-3.2.1.RELEASE.jar和spring-instrument-tomcat-3.2.1.RELEASE.jar放在我的 tomcat/lib 文件夹中。
并将 web.xml 配置为用户 annotationBasedConfiguration
Webapp 使用没有 XML 的代码配置,所以我创建了一个 @Configuration 注释类,例如:
当我尝试启动应用程序时,我收到错误
因此,起初在我看来,LoadTimeWeaving 配置不正确,但在尝试任何可能的解决方法一天后,我仍然没有找到解决方案。
我能看到的唯一奇怪的事情是那一行日志:
在我看来,在应用程序上下文中创建了两个具有相同名称(“LoadTimeWeaver”??)的不同 bean,具有不同的定义,并且这两个 bean 在某种程度上存在冲突。
织布工是否有可能使用 context:load-time-weaver 创建(它存在于从导入的 jar 加载的上下文文件中)和在我的新上下文中使用 @EnableLoadTimeWeaving 创建的那个在某种程度上发生了冲突?有没有办法只使用最后一个来覆盖两者之一?