在使用Junit测试,出现了无法找到SessionFactory的错误。错误信息:org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [com/downloadmanage/test/applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V
Caused by: java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V测试代码:
package com.downloadmanage.test;import org.springframework.test.AbstractDependencyInjectionSpringContextTests;
import com.downloadmanage.mode.server.disc;
import com.downloadmanage.mode.server.game;public class MyTest extends AbstractDependencyInjectionSpringContextTests {
private disc disc;
private game game;
public void setDisc(disc disc) {
this.disc = disc;
}
public void setGame(game game) {
this.game = game;
}
@Override
protected String[] getConfigLocations() {
return new String[]{"/applicationContext.xml"};
}
public void testOne(){
System.out.println("run TestOne");
}
}
applicationContext.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:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/tx 
http://www.springframework.org/schema/tx/spring-tx-2.0.xsd"> <bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation"
value="classpath:hibernate.cfg.xml">
</property>
</bean>
<bean id="hibernateTemplate"
  class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sFactory"></property>
</bean>
<tx:annotation-driven/>
</beans>
省略掉的是DAO的Sever的loc我的整个目录结构是:分数给的不多 都拿去押宝了 -。-不过还是希望大家帮我一下 谢谢啦

解决方案 »

  1.   

    Caused by: java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V 
    你的系统有重复的类库,jar.
    他们并不兼容。清理你的jar吧,保留合适的(一般是最新)的版本。删除那些重复的,老的版本。
      

  2.   

    问题还是没有解决 -。- 不过是新的问题了。现在报这个错。错误原因我大概已经找出来了,应该是没有找到applicationContext.xml的位置因为只要我没loc的地方都过不去,一旦我手工给new出那个类来了 或那个属性来啦 就能跳到下一个错误了这个是我整个程序的结构图
    这个是那段测试代码,请问参照我那个结构图,return new String[]{"applicationContext.xml"};中那个地址应该怎么填呢? 谢谢
    package com.downloadmangage.server.springimpl;import org.springframework.test.AbstractDependencyInjectionSpringContextTests;import com.downloadmanage.dao.hibernate.Disc;
    import com.downloadmanage.dao.hibernate.DownloadData;
    import com.downloadmanage.server.DiscServer;
    import com.downloadmanage.server.DownloadDataServer;
    import com.downloadmanage.server.springimpl.DownloadDataServerSpringimpl;
    import com.downloadmanage.server.springimpl.DsicServerSpringImpl;
    public class servertest extends AbstractDependencyInjectionSpringContextTests {

    private DiscServer discserver = new DsicServerSpringImpl();
    private DownloadDataServer downloaddataserver = new DownloadDataServerSpringimpl();

    @Override
    protected String[] getConfigLocations() {
    return new String[]{"applicationContext.xml"};
    }
    public void testServer(){
    short a = 1;
    discserver.addDisc(1, "a", a);
    System.out.println("run addDisc");
    downloaddataserver.addDownloadDataServer(1, "Game", "a");
    }
    }
      

  3.   

    你看一下你项目中的.springBeans文件
    指定的applicationContext.xml文件的位置
      

  4.   

    自己搞定了 Keep the bar green to keep the code clean 爽死 呵呵 谢谢各位。