Spring:xsi:schemaLocation无法从spring.schemas中读取配置

时间:2015-07-08 14:02:06

标签: java xml eclipse spring xsd

我有一个我想在applicationContext.xml中使用的个人命名空间。 我正在使用Spring3。

所以,在我的appliationContext中,在beans标签中我有:

$.when(xhr1, xhr2, xhr3).then(function(resp1, resp2, resp3) {
    // All 3 XHRs finished
});

这里重要的一行是

<beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:util="http://www.springframework.org/schema/util" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:profile="http://icfi.com/springbeans/profile" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd http://icfi.com/springbeans/profile http://icfi.com/springbeans/profile/profile.xsd">

我说我想使用profile.xsd。显然,这个文件不在线,但我的META-INF文件夹中有一个spring.schemas文件:

http://icfi.com/springbeans/profile http://icfi.com/springbeans/profile/profile.xsd

在里面。

我的本​​地profile.xsd文件位于src / main / resources中。

我的问题是,在eclipse中,它说无法找到xsd。我告诉他我文件的绝对路径:

http\://icfi.com/springbeans/profile/profile.xsd=profile.xsd

问题是一样的 然后我只给他“profile.xsd”,整行成为:

file:///c:/[...]/project/src/main/resources/profile.xsd

这里的Eclipse可以读取它!欢呼?不是因为: 它没有读取我的spring.schema,因为我必须提供我的文件的真实(相对)路径,更重要的是,当我启动我的应用程序时,在每种情况下(使用spring.schema中的url,完整路径)或相对路径)我总是:

http://icfi.com/springbeans/profile profile.xsd

我认为我的profile.xsd很好,因为我可以让eclipse读取它,但以防万一,这是我的文件:

org.xml.sax.SAXParseException: schema_reference.4: Failed to read schema document 'profile.xsd', because 1) could not find the document; 2) the document could not be read; 3) the root element of the document is not <xsd:schema>.
at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source) ~[xercesImpl-2.9.1.jar:?]

我真的无法弄清楚原因:

  • 我无法将“http://icfi.com/springbeans/profile/profile.xsd”绑定到我的profile.xsd
  • 我无法读取profile.xsd,即使日食说它可以读取它也没关系。

请帮我找一个解决方案吗?

最好的问候

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。我将namespaceHadler和解析器导出到外部jar,它工作正常。 对于绑定,我已经在线上传了xsd。

现在它可以正常工作:)