applicationContext-service.xml问题定义

时间:2010-09-02 08:48:02

标签: java spring

使用spring,下面是applicationContext-service.xml的代码:

<bean id="mediaObjectService" class="path.MediaObjectServiceImpl">

        <property name="mediaObjectDao" >
            <ref bean="mediaObjectDao"/>
        </property>
        <property name="semanticQuestionDao" >
            <ref bean="semanticQuestionDao"/>
        </property> 
        <aop:scoped-proxy/>
    </bean>

在做测试时,我得到了他的错误:

  

org.springframework.beans.factory.BeanCreationException:   使用名称创建bean时出错   'scopedTarget.mediaObjectService'   在类路径资源中定义   [的applicationContext-service.xml中]:   bean的初始化失败;嵌套   例外是   java.lang.NoSuchMethodError:   net.sf.cglib.proxy.Enhancer.setInterceptDuringConstruction(Z)V

据我所知,会话作用域对象总是有一个名为scopedTarget.的前缀到bean-id的名称。
所以,如果我是对的,mediaObjectService是bean-id,它是正确的声明 也许我错了,但无论如何,我没有看到我犯的错误。

任何帮助??

提前致谢

5 个答案:

答案 0 :(得分:5)

我使用了cglib-nodep-2.1_3.jar并解决了我的问题

答案 1 :(得分:4)

Google suggests这可能是由于您的类路径上的cglib库的重复版本。

答案 2 :(得分:0)

看起来您的测试在其类路径上运行了cglib.jar的不兼容版本,并且与Spring的期望发生冲突。确保您使用的是正确的版本,最有可能是2.1_3

答案 3 :(得分:0)

问题如下:

我正在使用java中的Web应用程序项目进行测试。在此应用程序中,applicationContext-service.xml具有标记<aop:scoped-proxy/>,有助于消除范围阻抗不匹配 使用JUnit测试不能很好地修复此标记,因此对我来说,至少目前的解决方案是在其他应用程序中测试此服务。

无论如何都要发表您的意见

答案 4 :(得分:0)

检查.classpath文件中已定义cglib-2.1_3.jar的顺序。确保它是在弹簧罐之前定义的。