java - 在 Apache Karaf 上的 OSGi 包中设置 Spring AOP 日志记录

标签 java spring osgi spring-aop apache-karaf

我正在尝试在部署在 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 依赖之外,我还尝试了不同的其他依赖,但遇到了同样的问题。

我在这里缺少什么?互联网上没有太多与 OSGiAOP 相关的信息。有人能帮我吗?我被困在这里了...

最佳答案

终于找到解决办法了。我需要安装这些 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/

相关文章:

java - Google Play 短信和通话权限

java - SpringJUnit4ClassRunner - 静态访问EntityManager(Factory)

java - 如何完全删除/禁用Web浏览器上的Spring boot Logo ?

java - 用于跟踪网页浏览量(或唯一访问者)的最佳 Grails 实现?

eclipse - 向 eclipse RCP 应用程序添加自动启动插件

java - LDAP 与 CAS + Spring 集成

java - 我如何从另一个类获取字符串?

eclipse - osgi.os 属性的 "win32"与 "win64"

java - Spring 3 MVC : form backing object has to be in session? 我怎样才能避免这种情况?

java - PAX-URL : "Protocol not supported" at Felix's startup