3

我有一个弹簧测试用例,注释如下

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:conf/allocadia-base.xml", "classpath:META-INF/jdoconfig.xml"})

我的 jdoconfig 是

<?xml version="1.0" encoding="utf-8"?>
<jdoconfig xmlns="http://java.sun.com/xml/ns/jdo/jdoconfig"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:noNamespaceSchemaLocation="http://java.sun.com/xml/ns/jdo/jdoconfig">

当我运行测试时,我得到

java.lang.IllegalStateException: Failed to load ApplicationContext 
.  
. 
.  
Caused by: org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 4 in XML document from class path resource [META-INF/jdoconfig.xml] is invalid; nested exception is org.xml.sax.SAXParseException: cvc-elt.1: Cannot find the declaration of element 'jdoconfig'.

如果我将 jdoconfig 更改为

<jdoconfig xmlns="http://java.sun.com/xml/ns/jdo/jdoconfig"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://java.sun.com/xml/ns/jdo/jdoconfig http://java.sun.com/xml/ns/jdo/jdoconfig_2_3.xsd">

错误是

引起:org.springframework.beans.factory.parsing.BeanDefinitionParsingException:配置问题:无法找到 XML 模式命名空间的 Spring NamespaceHandler [http://java.sun.com/xml/ns/jdo/jdoconfig] 违规资源:类路径资源 [META-INF/jdoconfig.xml]

我使用最新的 spring 3.2 和 JDO 2.3-e

当我将应用程序部署到 tomcat 时,该应用程序运行良好我在尝试运行测试时遇到此错误

4

1 回答 1

11

您的 jdoconfig.xml 包含不正确的 url。试试这个:

xsi:schemaLocation="http://java.sun.com/xml/ns/jdo/jdoconfig http://java.sun.com/xml/ns/jdo/jdoconfig_3_0.xsd"

使用不正确的 url 验证 jdoconfig

如何解决 jdoconfig.xml 中 xsi:noNamespaceSchemaLocation 上的验证错误

于 2013-02-01T18:03:39.880 回答