Spring TestContext框架

时间:2011-03-31 19:01:54

标签: spring

我尝试使用Spring TestContext Framework创建一个加载applicationContext.xml的测试,代码非常简单:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"/applicationContext.xml"})
public class ApplicationContextLoadingTest {
    @Autowired
    private ApplicationContext applicationContext;
    @Ignore
    @Test
    public void testContext() {
    }
}

当我运行测试时,我收到了错误消息:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'pollInitializer' defined in class path resource [applicationContext.xml]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not execute query
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1338)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
    at java.security.AccessController.doPrivileged(Native Method)
...

任何人都知道这意味着什么?感谢

2 个答案:

答案 0 :(得分:1)

这正是它所说的:applicationContext.xml包含一个名为pollInitializer的bean,这个bean有一个初始化方法,该方法试图执行一些Hibernate查询,查询失败了{{1} }。

因此,请检查该初始化方法发出的Hibernate查询。

答案 1 :(得分:0)

这意味着spring正在加载文件applicationContect.xml,并且无法设置在该文件中定义的名为pollInitalizer的bean。

通过测试,您将尝试自动连接ApplicationContext。那不太正常。通常,您会自动连接导致加载的XML中定义的某些bean。您不必直接使用应用程序上下文。