2011-12-29 68 views
4

我試圖在Web項目中結合JUnit和Spring。由於this question,我已經成功地使彈簧加載配置文件到的TestClass:配置問題:無法找到XML名稱空間的Spring NamespaceHandler [http://java.sun.com/xml/ns/javaee]

@RunWith(SpringJUnit4ClassRunner.class) 
@ContextConfiguration 
public class TwitterServiceTest { 
    @Resource 
    IRepository repository; 

但是當測試運行時,我得到了以下錯誤:

Caused by: org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace [ http://java.sun.com/xml/ns/javaee]

我想這個問題可能是庫文件不在classpath中。目前我使用Sysdeo Eclipse Tomcat pluginDevLoader來執行加載作業(從M2_REPO加載jar文件到類路徑)。

該項目取決於許多圖書館。有沒有關於如何解決這個錯誤的想法? 任何幫助將不勝感激。

+1

爲什麼你的配置文件裏有'javaee'命名空間呢?在單元測試中,這似乎不是一件有用的事情。 – skaffman 2011-12-29 10:46:35

+0

@skaffman:是的,你說得對,我已經把錯誤的文件。 – 2011-12-30 08:40:15

回答

3

我犯了一個愚蠢的錯誤,它使用「web.xml」作爲彈簧配置上下文文件。 SpringJUnit4ClassRunner嘗試將其解析爲spring上下文文件,以使其失敗。

包含正確的上下文文件後,該應用程序現在工作。

+1

我也是這麼做的!感謝您的評論,解決了我的問題。 – 2014-10-09 16:00:51

+1

爲了澄清未來的讀者:您的@ContextConfiguration位置應該以您的定義爲目標Spring .xml文件。 – mwoodman 2016-04-20 16:54:34

+0

你是什麼意思?什麼是正確的上下文文件? – Siddharth 2017-09-11 08:26:53