如何解决java.lang.NoClassDefFoundError:org / aopalliance / aop / Advice error?

时间:2014-12-05 20:18:22

标签: java spring netbeans spring-aop

我正在尝试使用spring AOP框架。编译时没有错误。 当我试图运行它时,我得到了上述异常。我正在使用netbeans IDE 8.0.1。 我包含了以下库和jar文件。

1) Spring Framework 4.0.1
2) aspectjrt.jar
3) aspectjweaver.jar
4) aopalliance-alpha1.jar
5) asm-5.03.jar
6) cglib-3.1.jar

这是我的spring.xml配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:context="http://www.springframework.org/schema/context"

       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
          http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
          http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
">

  <aop:aspectj-autoproxy/>

    <bean name="triangle" class="springaop.Triangle">
        <property name="name" value="My Triangle" />
    </bean>

    <bean name="circle" class="springaop.Circle">
        <property name="name" value="My Circle" />
    </bean>

    <bean name="shapeService" class="springaop.ShapeService" autowire="byName" >
    </bean>

    <bean name="loginAspect" class="springaop.LoginAspect" />

</beans>

这些是每个发布商提供的最新jar文件。 我没有在aopalliance jar中的任何地方看到Advice类。我搜索了这个问题。似乎Advice类可能已从aopalliance jar中删除。我一直无法搜索它。有没有人知道如何解决这个问题,除了告诉我使用Maven :)?

3 个答案:

答案 0 :(得分:8)

我不知道aopalliance-alpha1是什么。您需要aopalliance版本1.0。你可以得到它here。 (如果您不使用Maven,请下载JAR。)

答案 1 :(得分:1)

我遇到了与添加aopalliance-alpha1.jar而不是aopalliance.jar相同的错误。我添加了正确的jar,它开始工作了。

答案 2 :(得分:-2)

我的日食环境也出现了同样的错误。

原因:为了处理spring aop示例,我从网上下载了文件'aopalliance-.jar.zip','aspectj-1.6.9.jar.zip','aspectjrt.jar.zip','aspectj -weaver.jar.zip'并将其直接包含在java构建路径中。我在这里犯的错误是我没有从zip文件中提取jar文件,而是直接将.jar.zip文件添加到java构建路径中。

修复:从上面提到的.jar.zip文件中提取jar文件,在eclipse中提取jar文件而不是zip文件,然后它就会开始工作。