我正在尝试在我的工作中运行一名前雇员留下的系统,但我遇到了问题。
如果XSD通过远程访问运行:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
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/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd">
它给出了一个未找到的例外:
Failed to read schema document 'http://www.springframework.org/schema/context/spring-context-3.0.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>.
如果XSD通过本地访问运行:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
classpath:org/springframework/beans/factory/xml/spring-beans-3.0.xsd
http://www.springframework.org/schema/tx
classpath:org/springframework/transaction/config/spring-tx-3.0.xsd
http://www.springframework.org/schema/context
classpath:org/springframework/context/config/spring-context-3.0.xsd
http://www.springframework.org/schema/tool
classpath:org/springframework/beans/factory/xml/spring-tool-3.0.xsd">
它给出了这个例外:
C:\Users\claudiomazur>java -jar c:\temp\fin\c.jar
0 [AWT-EventQueue-0] INFO support.ClassPathXmlApplicationContext - Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@4fa52fdf: startup date [Thu Sep 06
11:22:59 BRT 2012]; root of context hierarchy
45 [AWT-EventQueue-0] INFO xml.XmlBeanDefinitionReader - Loading XML bean definitions from class path resource [context.xml]
Exception in thread "AWT-EventQueue-0" org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Unable to locate Spring NamespaceHandler for
XML schema namespace [http://www.springframework.org/schema/context]
Offending resource: class path resource [context.xml]
at org.springframework.beans.factory.parsing.FailFastProblemReporter.error(FailFastProblemReporter.java:68)
有什么想法解决这个问题?
大抱抱!!
答案 0 :(得分:9)
Spring XDS已定义并随Spring jar一起发货!例如,spring-context.jar
包含spring-context-3.0.xsd
。 (见spring-context.jar
/ META-INF / spring.schema)
因此,请检查项目中是否有此jar。
所以你所谓的“远程”并不是很遥远!我从来没有看到你所谓的“本地访问”,所以我会尝试检查为什么“远程”(不是远程)的东西适用于所有xsds而不是spring-context。
如果它是桌面程序并且您使用包含所有其他爆炸罐的单个jar,那么您需要注意单个spring.handlers
和spring.schames
文件的内容不同的spring-xxx.jar在(两个)“hunge”文件中组合在一起。因此,最后这个(两个)文件包含所有模式名称和处理程序名称。
答案 1 :(得分:3)
真正的SPRING XSD与罐子一起发货。
存储这些XSD的信息:
让我们说在XML文件中,我们使用了bean命名空间,我们需要研究
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
请检查META-INF文件夹中的文件“spring-schemas”spring-beans-4.0.1.RELEASE.jar。 此文件的示例上下文应为:
http\://www.springframework.org/schema/beans/spring-beans-4.0.xsd
=org/springframework/beans/factory/xml/spring-beans-4.0.xsd
http\://www.springframework.org/schema/beans/spring-beans.xsd
=org/springframework/beans/factory/xml/spring-beans-4.0.xsd
因此
http\://www.springframework.org/schema/beans/spring-beans.xsd is mapped to
org/springframework/beans/factory/xml/spring-beans-4.0.xsd
在你的罐子里
答案 2 :(得分:2)
尝试运行wget http://www.springframework.org/schema/context/spring-context-3.0.xsd。
should be something like: wget http://www.springframework.org/schema/context/spring-context-3.0.xsd
--2012-09-10 15:56:05-- http://www.springframework.org/schema/context/spring-context-3.0.xsd
Resolving www.springframework.org... 205.140.197.88
Connecting to www.springframework.org|205.140.197.88|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 19651 (19K) [text/xml]
Saving to: “spring-context-3.0.xsd”
100%[=====================================================================>] 19,651 24.6K/s in 0.8s
2012-09-10 15:56:06 (24.6 KB/s) - “spring-context-3.0.xsd” saved [19651/19651]
如果您在获取xsd架构时遇到问题,则很难使用继承此架构的xml文件。
在第二种情况下,你只是在classpath中没有任何spring - * - 3.0.xsd文件。