我尝试使用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) ...
任何人都知道这意味着什么?感谢
答案 0 :(得分:1)
这正是它所说的:applicationContext.xml
包含一个名为pollInitializer
的bean,这个bean有一个初始化方法,该方法试图执行一些Hibernate查询,查询失败了{{1} }。
因此,请检查该初始化方法发出的Hibernate查询。
答案 1 :(得分:0)
这意味着spring正在加载文件applicationContect.xml,并且无法设置在该文件中定义的名为pollInitalizer的bean。
通过测试,您将尝试自动连接ApplicationContext。那不太正常。通常,您会自动连接导致加载的XML中定义的某些bean。您不必直接使用应用程序上下文。