7

我的 aop 配置有问题。这是我的 spring xml 配置的一部分:

<bean id="conLogger" class="com.pomkine.pXMPP.connection_service.ConnectionLogger"/>

<aop:config>
    <aop:aspect ref="conLogger">
        <aop:pointcut id="connect"
                      expression= "execution(* com.pomkine.pXMPP.connection_service.connectionManager.connect(..))" />
        <aop:after pointcut-ref="connect"
                   method="connected"/>
    </aop:aspect>
</aop:config>

这是我的主要方法:

public static void main (String [] args) {
    ApplicationContext ac = new ClassPathXmlApplicationContext("com/pomkine/pXMPP/connection_service/connection-manager.xml");
    connectionManager cm=(connectionManager)ac.getBean("connectionManager");
    try {
        cm.connect();
        cm.disconnect();
      } catch (XMPPException e) {
        e.printStackTrace();
    }

}

当我运行它时,我得到了 NoClassDefFoundError 异常。

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'connect': Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: org/aspectj/weaver/reflect/ReflectionWorld$ReflectionWorldException

无法弄清楚问题是什么。将不胜感激任何帮助。

4

1 回答 1

14

这个问题:Missing Spring AOP library in STS似乎解决了一个类似的问题(缺少库),也是这个Spring 论坛线程中的一个问题。

你的类路径上有提到的罐子吗?

<dependency>
    <groupId>cglib</groupId>
    <artifactId>cglib</artifactId>
    <version>2.2</version>
</dependency>
<dependency>  
    <groupId>org.aspectj</groupId>
    <artifactId>aspectjweaver</artifactId>
    <version>1.6.11</version>
</dependency>
于 2012-09-14T22:05:43.883 回答