2012-09-14 106 views
7

我有一個aop配置問題。這是我的Spring XML配置的一部分:Spring aop java.lang.NoClassDefFoundError

<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 

找不出問題所在。將不勝感激任何幫助。

+0

可能重複[新來春 - 缺少AOP庫在STS,救命啊!(http://stackoverflow.com/questions/6475313/new-to-spring-missing-aop-libraries-in- STS-HELP) – Raedwald

回答

14

這個問題:Missing Spring AOP libraries in STS似乎解決了類似的問題(缺少庫),在這Spring Forum thread也是一個問題。

你有類路徑中提到的罐子嗎?

<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> 
+3

謝謝,這將幫助依賴' CGLIB CGLIB 2.2 org.aspectj aspectjweaver 1.6.11 ' – pomkine

+1

爲什麼我們需要這些依賴關係?他們不是AspectJ嗎?我有同樣的問題,但我不使用AspectJ,我想使用Spring AOP。 – Erlan