2016-09-28 103 views
-1

我正在爲我的Spring MVC web應用程序而苦苦掙扎。該應用程序本身看起來正常工作。 2天后,我想爲我的課程做一些JUnit測試,並且我已閱讀了如何使用Spring進行測試。Java Spring MVC + JUNIT +無法創建bean

所以我創建了我的測試類,我使用下面的註釋來運行Spring測試並加載適當的上下文。

@RunWith(SpringJUnit4ClassRunner.class) 
@ActiveProfiles(profiles = "test") 
@ContextConfiguration(locations = {"classpath:/dispatcher-servlet.xml","classpath:/beans.xml","classpath:/jpaContext.xml"} 

,當我嘗試運行基於Maven或只是月食這個測試,即時得到以下錯誤:

java.lang.IllegalStateException: Failed to load ApplicationContext 
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'messageSource' defined in class path resource [dispatcher-servlet.xml]: Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration': Injection of autowired dependencies failed; nested exception is java.lang.NoClassDefFoundError: javax/servlet/ServletContext 

誰能告訴我爲什麼會發生?應用程序無需測試即可正常工作,並且所有的Bean都沒有任何問題。

爲什麼我有這樣的測試問題?

在此先感謝! Jan

+0

實際上你是否閱讀過堆棧跟蹤...它告訴你你錯過了一個類,因此你需要添加一個依賴關係。 –

回答

0

您應該添加servlet-api作爲依賴項。

<dependency> 
    <groupId>javax.servlet</groupId> 
    <artifactId>javax.servlet-api</artifactId> 
    <version>3.0.1</version> 
    <scope>provided</scope> 
</dependency> 

檢查此answer欲知更多信息。