Disabilita convalida dello schema a Spring 3
-
08-10-2019 - |
Domanda
Stiamo usando quadro Josso per il single sign on. E sta funzionando correttamente in primavera 2.5.6. Sembra rigorosa convalida dello schema XML è stato introdotto in Spring 3, Josso XSD di non vengono aggiornati da tempo, da cui otteniamo errori durante l'avvio del server. C'è un modo per disattivare la convalida dello schema a Spring 3 (Probabilmente farlo funzionare simile a 2.5.6) ..
Soluzione
Non ho ancora provato, ma il GenericXmlApplicationContext ha un metodo setValidating (convalida booleano).
Credo che si può utilizzare questo metodo per disattivare la convalida:
GenericXmlApplicationContext context = new GenericXmlApplicationContext();
context.setValidating(false);
context.load("myResource.xml", "otherResource.xml");
context.refresh();
https://jira.springframework.org/browse/SPR-5014
Se si utilizza la primavera in un'applicazione web, allora è più difficile impostare il parametro di convalida.
Un modo mi viene in mente, sulla base del fatto che il ContextLoader utilizza un parametro di contesto web.xml "contextClass
" per specificare la classe del contesto (di default è: org.springframework.web.context.support.XmlWebApplicationContext
).
- @see: org.springframework.web.context.ContextLoader
- @see: org.springframework.web.context.ContextLoader # determineContextClass (ServletContext)
Forse è possibile creare una sottoclasse di XmlWebApplicationContext con disabile convalida e utilizzare il parametro "contextClass
" per caricare questa classe invece di XmlWebApplicationContext.