2011-03-31 65 views
0

我试图创建一个使用Spring TestContext框架加载applicationContext.xml的测试,代码很简单:了Spring TestContext框架

@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) 
...

任何人都知道这意味着什么?由于

回答

1

这意味着正是它说:applicationContext.xml包含一个名为pollInitializer豆,这个bean有一个初始化方法,该方法试图执行一些Hibernate的查询,查询与SQLGrammarException失败。

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

0

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

随着你的测试,你是attemptinhpg自动连线一个ApplicationContext。这不是很正常。通常情况下,你会自动连线你在XML中定义的一些你要加载的bean。您不必直接使用应用程序上下文。

+0

我自动连线ApplicationContext的原因是我想测试该文件可以成功加载。 – ohana 2011-03-31 20:27:16