Java junit无法在自动连线时工作
我在自动连线bean中得到一个错误。在测试类之外,它可以工作。做错了什么?如何提升应用程序上下文。甚至可以指定哪些部分?这是我的密码:Java junit无法在自动连线时工作,java,spring,junit,Java,Spring,Junit,我在自动连线bean中得到一个错误。在测试类之外,它可以工作。做错了什么?如何提升应用程序上下文。甚至可以指定哪些部分?这是我的密码: <properties> <java-version>1.6</java-version> <org.springframework-version>3.1.0.RELEASE</org.springframework-version> </propertie
<properties>
<java-version>1.6</java-version>
<org.springframework-version>3.1.0.RELEASE</org.springframework-version>
</properties>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${org.springframework-version}</version>
<exclusions>
<!-- Exclude Commons Logging in favor of SLF4j -->
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.7</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${org.springframework-version}</version>
<scope>test</scope>
</dependency>
}
休眠配置
bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="configLocation">
<value>WEB-INF/spring/hibernate.cfg.xml</value>
</property>
另外,很抱歉我讲英语您正在将spring test 4.0与其他版本3.1.0.RELEASE的spring Jar一起使用。不要那样做。使用spring test 3.1.0,或使用所有其他spring jar的4.0版本,但不要将不兼容的版本混合在一起。您的sessionFactory配置指向
<property name="configLocation">
<value>WEB-INF/spring/hibernate.cfg.xml</value>
</property>
但是WEB-INF/spring目录没有添加到类路径中,因此spring无法找到它
您需要指定一个文件:前缀路径为相对或绝对,或者将该文件放在类路径中的某个位置。其他Spring依赖项在哪里?显示pom.xml文件的其他依赖项。如果我使用spring test 3.1.0.RELEASE,则会出现have java.lang.IllegalStateException:未能加载ApplicationContext,然后读取异常堆栈跟踪和消息,找到异常的原因并修复它。我不知道如何修复它。指定了hibernate.cfg.xml文件路径。我在上面发布了堆栈跟踪以及文件。首先,WEB-INF中有额外的空间。其次,WEB-INF/spring/hibernate.cfg.xml不是类路径资源。它是一个web应用程序资源。并且您的单元测试没有在web应用程序中运行。使用适用于单元测试的配置文件配置测试。不使用适用于web应用程序的配置文件。
bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="configLocation">
<value>WEB-INF/spring/hibernate.cfg.xml</value>
</property>
Caused by: java.io.FileNotFoundException: class path resource [WEB- INF/spring/hibernate.cfg.xml] cannot be resolved to URL because it does not exist
at org.springframework.core.io.ClassPathResource.getURL(ClassPathResource.java:179)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:642)
at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:211)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1514)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1452)
... 41 more
<property name="configLocation">
<value>WEB-INF/spring/hibernate.cfg.xml</value>
</property>