Spring AOP错误

时间:2009-05-18 15:52:49

标签: spring aop spring-aop

什么会在运行时导致此问题?:

  

匹配的通配符是严格的,但是   没有声明可以找到   元素'aop:config'

以下是相关的Spring XML:

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:util="http://www.springframework.org/schema/util"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
       http://www.springframework.org/schema/util
       http://www.springframework.org/schema/util/spring-util-2.0.xsd
       http://www.springframework.org/schema/aop
       http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">
    .
    .
    .
    <aop:config>
        <aop:advisor pointcut="execution(* acme.exam.driver.ui.components..*(..))" 
                     advice-ref="loggingInterceptor" />
    </aop:config>

    <bean id="loggingInterceptor" 
          class="org.springframework.aop.interceptor.CustomizableTraceInterceptor">
        <property name="enterMessage" 
                  value="ENTER: $[targetClassShortName].$[methodName]($[arguments])" />
        <property name="exitMessage" 
                  value="EXIT: $[targetClassShortName].$[methodName]($[arguments]) = $[returnValue])" />
    </bean>
</beans>

请注意,我已经在类路径上放置了 aspectjweaver.jar aspectjrt.jar

3 个答案:

答案 0 :(得分:2)

您是否在类路径上双击了弹簧aop神器?

根据我的maven依赖关系,aspectjweaver还不够,我还需要aspectjrt。

答案 1 :(得分:0)

确保<spring-framework-directory>/dist/modules/spring-aop.jar在您的课程路径中。

答案 2 :(得分:0)

对于其他任何人,我在配置中解决了这个错误,其中命名空间包含项目

xmlns:aop="http://www.springframework.org/schema/aop

虽然没有包含 xsi:schemaLocation 元素

http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd

此配置错误导致上述消息 添加schemaLocation元素解决了它。