我正在尝试在部署在 Apache Karaf
中的 OSGi
包中设置 Spring AOP
日志记录。这与我的帖子here有关。那里提供的答案对我没有帮助。如果我添加 Maven 依赖项:
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>com.springsource.org.aspectj.weaver</artifactId>
<version>1.6.2.RELEASE</version>
<scope>provided</scope>
</dependency>
我必须导出一堆包:
org.aspectj.lang.*,
org.aspectj.internal.lang.reflect.*,
org.aspectj.internal.lang.annotation.*,
org.aspectj.runtime.internal.*,
org.aspectj.runtime.*,
org.aspectj.weaver.reflect.*,
org.aspectj.apache.bcel.classfile.*,
org.aspectj.apache.bcel.*,
org.aspectj.bridge.*,
org.aspectj.util.*,
org.aspectj.weaver.*,
com.bea.jvm.*,
而最后一个(com.bea.jvm.*)
正在破坏一切。当我尝试启动我的 bundle 时,它给了我缺少需求的错误,并说这个包丢失了。 (package=com.bea.jvm)
。但它是导出的。除了上面的 Maven 依赖之外,我还尝试了不同的其他依赖,但遇到了同样的问题。
我在这里缺少什么?互联网上没有太多与 OSGi
和 AOP
相关的信息。有人能帮我吗?我被困在这里了...
最佳答案
终于找到解决办法了。我需要安装这些 bundle :
install http://repository.springsource.com/ivy/bundles/external/org.aspectj/com.springsource.org.aspectj.runtime/1.6.2.RELEASE/com.springsource.org.aspectj.runtime-1.6.2.RELEASE.jar
install http://repository.springsource.com/ivy/bundles/external/org.aspectj/com.springsource.org.aspectj.weaver/1.6.2.RELEASE/com.springsource.org.aspectj.weaver-1.6.2.RELEASE.jar
并导入org.aopalliance.aop,
打包到我的包中,一切正常。也没有必要导出这堆(org.aspectj)
包。
关于java - 在 Apache Karaf 上的 OSGi 包中设置 Spring AOP 日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12173477/