Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在OSGi包中使用Spring AOP_Java_Maven_Osgi_Spring Aop_Apache Karaf - Fatal编程技术网

Java 在OSGi包中使用Spring AOP

Java 在OSGi包中使用Spring AOP,java,maven,osgi,spring-aop,apache-karaf,Java,Maven,Osgi,Spring Aop,Apache Karaf,我试图使用springaop进行日志记录。我已经设置了日志包和其中的OSGi服务 我还有另一个OSGi包,它将日志包中的服务用作OSGi参考 日志包部署到ApacheKaraf中并运行。我无法部署我的另一个包 我的捆绑包中的spring配置如下所示: <osgi:reference id="loggingIterceptor" interface="com.groupgti.commons.log.LoggingInterceptorAdvice"/> <aop:config&

我试图使用
springaop
进行日志记录。我已经设置了日志包和其中的
OSGi
服务

我还有另一个
OSGi
包,它将日志包中的服务用作
OSGi
参考

日志包部署到ApacheKaraf中并运行。我无法部署我的另一个包

我的捆绑包中的spring配置如下所示:

<osgi:reference id="loggingIterceptor" interface="com.groupgti.commons.log.LoggingInterceptorAdvice"/>
<aop:config>
    <aop:pointcut id="logger" expression="@annotation(com.groupgti.esb.assessments.kenexa.log.InOutLogger)"/>
    <aop:advisor pointcut-ref="logger" advice-ref="loggingIterceptor"/>
</aop:config>
我已将maven依赖项添加到我的
pom.xml

<dependency>
    <groupId>org.aspectj</groupId>
    <artifactId>aspectjweaver</artifactId>
    <version>1.6.2</version>
</dependency>

org.aspectj
aspectjweaver
1.6.2

还是解决不了问题。这里我遗漏了什么?

问题是您正在导入的Maven依赖项没有正确的OSGI清单。清单中缺少与所有其他OSGI标记相邻的导出包标记

因此,org.aspectj.weaver.reflect包不会导出,在OSGI中,这意味着该包中的类对于其他bundle来说是未知的。 因此出现了ClassNotFoundException

要解决您的问题,请使用以下内容替换依赖项:

<dependency>
    <groupId>org.aspectj</groupId>
    <artifactId>com.springsource.org.aspectj.weaver</artifactId>
    <version>1.6.2.RELEASE</version>
</dependency>

org.aspectj
com.springsource.org.aspectj.weaver
1.6.2.1发布
springsource JAR基本上是官方版本的重新打包,但是有一个适当的osgi清单

<dependency>
    <groupId>org.aspectj</groupId>
    <artifactId>com.springsource.org.aspectj.weaver</artifactId>
    <version>1.6.2.RELEASE</version>
</dependency>