2011-03-31 107 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