我有一个在生产服务器上运行的Web应用程序,该服务器不允许公共Internet访问.初始化失败,并显示以下错误
2010-02-18 15:21:33,150 **WARN** [SimpleSaxErrorHandler.java:47] Ignored XML validation warning
org.xml.sax.SAXParseException: schema_reference.4: Failed to read schema document 'https://jax-ws.dev.java.net/spring/servlet.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 com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195)
...
2010-02-18 15:21:33,154 **ERROR** [ContextLoader.java:215] Context initialization Failed
org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 9 in XML document from ServletContext resource [/WEB-INF/app.xml] is invalid; nested exception is org.xml.sax.SAXPar
seException: cvc-complex-type.2.4.c: The matching wildcard is strict,but no declaration can be found for element 'wss:binding'.
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:389)
似乎第一次警告表明应用程序无法下载架构文件,从而导致了第二次错误.
我的问题是:
>我觉得应该能够运行一个无需互联网访问的应用程序是合理的.我该如何要求xml解析器使用本地模式文件,而不是从Internet下载的副本.我知道XML目录具有此功能.我正在使用tomcat和spring.有没有一种配置XML目录的方法?是否有其他机制可以达到相同目的?
>如果我无法重定向解析器以使用本地模式文件.我可以禁用XML模式验证吗?同样,我只想配置行为而无需接触代码.
最佳答案
将所需的架构放在类路径中,然后使用resolver来使用它.