在Spring 3中禁用架构验证

时间:2010-11-11 22:57:47

标签: java spring xsd-validation josso

我们正在使用JOSSO框架进行单点登录。它在Spring 2.5.6中正常工作。似乎在Spring 3中引入了严格的XML模式验证,JOSSO XSD很长时间没有更新,因此我们在服务器启动期间出错。有没有办法在Spring 3中禁用模式验证(可能使其工作类似于2.5.6)..

1 个答案:

答案 0 :(得分:4)

我还没有尝试过,但是GenericXmlApplicationContext有一个setValidating(布尔验证)方法。

我相信您可以使用此方法停用验证:

GenericXmlApplicationContext context = new GenericXmlApplicationContext();
context.setValidating(false);
context.load("myResource.xml", "otherResource.xml");
context.refresh();

https://jira.springframework.org/browse/SPR-5014

如果在Web应用程序中使用spring,则设置验证参数会更加困难。 我可以想到的一种方法,基于ContextLoader使用web.xml上下文参数“contextClass”来指定上下文类(默认为:org.springframework.web.context.support.XmlWebApplicationContext)。

  • @see: org.springframework.web.context.ContextLoader
  • @see: org.springframework.web.context.ContextLoader#determineContextClass(ServletContext中)

也许您可以使用禁用的验证创建XmlWebApplicationContext的子类,并使用“contextClass”参数来加载此类而不是XmlWebApplicationContext。