为什么junit给我一个无法加载ApplicationContext错误

时间:2011-07-05 00:09:52

标签: java spring junit

我正试图在eclipse中运行我的第一个junit类。当我右键单击新类并选择run as junit时,它会导致我无法加载applicationcontext错误。 spring-servlet.xml的直接路径是正确的。

以下是代码:

import static org.junit.Assert.*;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"file:C:/MyProject/WEB-INF/spring-servlet.xml" 
}) 
public class MyUnitTest {
@Autowired
private ApplicationContext applicationContext;

@Before
public void setUp() {
}

@Test
public void testFunctionality() throws Exception {
    assertTrue(true);
}
}

错误 -

Caused by: org.xml.sax.SAXParseException: cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'aop:scoped-proxy'.

1 个答案:

答案 0 :(得分:3)

  

直接路径   spring-servlet.xml是正确的。

不,不是。如果是的话,JUnit就会找到它。

我认为它应该是这样的:

@ContextConfiguration(locations={"file:///C:/MyProject/WEB-INF/spring-servlet.xml"

http://en.wikipedia.org/wiki/File_URI_scheme

更新:

您发布的错误消息表明您确实阅读了上下文XML,但是出现了错误。

我发现将我收到的任何错误消息粘贴到Google中会很有帮助。当我和你一起做的时候,它发给我的是:

http://forum.springsource.org/showthread.php?35417-The-matching-wildcard-is-strict-but-no-declaration-can-be-foun...-aop-scoped-proxy

检查缺少的JAR。