在Java中加载SchemaUrl需要太长时间(XSD验证)

时间:2017-08-04 22:21:11

标签: xml xsd java-7 ubuntu-16.04 w3c

我正在尝试使用在Java 7.0_80中运行的以下Java代码和在Ubuntu 16.04操作系统下运行的Tomcat 7 WebServer来针对xsd验证XML文件:

 SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
 Schema schema = factory.newSchema(schemaUrl);
 Validator validator = schema.newValidator();
 validator.validate(new StreamSource(new StringReader(xml)));

以下说明需要很长时间才能回复:

  

架构架构= factory.newSchema(schemaUrl);

经过多次尝试,Tomcat抛出了JavaOutOfSpace错误。

我一直在使用这个xsd文件很长一段时间,而且代码实际上在具有相同特性的另一台服务器上运行得很好。这曾经在这台服务器上完美运行,直到我们在2017年7月29日安装了安全更新。从那时起,我们尝试了以下方法:

  • 卸载安全更新
  • 从头开始安装与实际工作的服务器具有相同特征的新ubuntu服务器
  • 本地访问xsd文件/var/lib/tomcat7/webapps/AppName/schema.xsd并通过http://localhost:8080/AppName/schema.xsd

xsd文件有一些位于本地的导入,它没有在服务器外部的任何导入: Xsd declaration

我所读到的是,在加载此声明中加载的W3C的DTD时,可能会出现问题:

  

xmlns:xs =“http://www.w3.org/2001/XMLSchema

我读过的解决方案是在本地加载DTD,这里的问题是:

  • 我应该在本地加载什么?
  • 如何在我的xsd文件中本地引用它?
  • 如何每隔60/90天更新一次?
  • 为什么我只在几台服务器上出现此问题,原因是更新而不是我的其他服务器?

感谢您的帮助。

0 个答案:

没有答案