在使用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我的整个目录结构是:分数给的不多 都拿去押宝了 -。-不过还是希望大家帮我一下 谢谢啦
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我的整个目录结构是:分数给的不多 都拿去押宝了 -。-不过还是希望大家帮我一下 谢谢啦
你的系统有重复的类库,jar.
他们并不兼容。清理你的jar吧,保留合适的(一般是最新)的版本。删除那些重复的,老的版本。
这个是那段测试代码,请问参照我那个结构图,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");
}
}
指定的applicationContext.xml文件的位置