java - util - Spring schemaLocation falla cuando no hay conexión a Internet
spring xml configuration example (18)
Buscar ruta de clases
Si está utilizando eclipse, haga clic en el archivo jar correspondiente. Ir a -> META-INF-> abrir archivo spring.schemas
Verás las líneas algo así como a continuación.
http://www.springframework.org/schema/context/spring-context.xsd=org/springframework/context/config/spring-context-3.1.xsd
copie after = y configure beans como a continuación.
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:util="http://www.springframework.org/schema/util" xmlns:rabbit="http://www.springframework.org/schema/rabbit" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/rabbit classpath:org/springframework/amqp/rabbit/config/spring-rabbit-1.1.xsd http://www.springframework.org/schema/beans classpath:org/springframework/beans/factory/xml/spring-beans-3.1.xsd http://www.springframework.org/schema/context classpath:org/springframework/context/config/spring-context-3.1.xsd http://www.springframework.org/schema/util classpath:org/springframework/beans/factory/xml/spring-util-3.1.xsd">
Estoy usando Spring y en application-context.xml
Tengo las siguientes definiciones:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:util="http://www.springframework.org/schema/util"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:security="http://www.springframework.org/schema/security"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-2.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.1.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-2.0.xsd"
>
.....
Cuando pierdo mi conexión a Internet, no puedo ejecutar mi aplicación a través de tomcat o embarcadero.
Da:
[main] WARN org.springframework.beans.factory.xml.XmlBeanDefinitionReader - Ignored XML validation warning
org.xml.sax.SAXParseException: schema_reference.4: Failed to read schema document ''/spring-beans-2.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>.
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195)
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.warning(ErrorHandlerWrapper.java:96)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:380)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:318)
at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.reportSchemaErr(XSDHandler.java:2541)
at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.reportSchemaWarning(XSDHandler.java:2532)
at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.getSchemaDocument(XSDHandler.java:1836)
at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.parseSchema(XSDHandler.java:531)
at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadSchema(XMLSchemaLoader.java:552)
at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.findSchemaGrammar(XMLSchemaValidator.java:2408)
at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.handleStartElement(XMLSchemaValidator.java:1753)
at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.startElement(XMLSchemaValidator.java:685)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:400)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDriver.scanRootElementHook(XMLNSDocumentScannerImpl.java:626)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:3095)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:921)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107)
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:225)
at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:283)
at org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(DefaultDocumentLoader.java:75)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:396)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:342)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:310)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:143)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:178)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:149)
at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:124)
at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:92)
at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:123)
at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:423)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:353)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45)
at org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:548)
at org.mortbay.jetty.servlet.Context.startContext(Context.java:136)
at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250)
at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467)
at org.mortbay.jetty.plugin.Jetty6PluginWebAppContext.doStart(Jetty6PluginWebAppContext.java:115)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
at org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152)
at org.mortbay.jetty.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:156)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
at org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
at org.mortbay.jetty.Server.doStart(Server.java:224)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
at org.mortbay.jetty.plugin.Jetty6PluginServer.start(Jetty6PluginServer.java:132)
at org.mortbay.jetty.plugin.AbstractJettyMojo.startJetty(AbstractJettyMojo.java:441)
at org.mortbay.jetty.plugin.AbstractJettyMojo.execute(AbstractJettyMojo.java:383)
at org.mortbay.jetty.plugin.AbstractJettyRunMojo.execute(AbstractJettyRunMojo.java:210)
at org.mortbay.jetty.plugin.Jetty6RunMojo.execute(Jetty6RunMojo.java:184)
at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:483)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:678)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:553)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:523)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:371)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:332)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:181)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:356)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:137)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:356)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
2009-11-13 15:31:25,675 [main] ERROR org.springframework.web.context.ContextLoader - Context initialization failed
org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 23 in XML document from class path resource [application-context.xml] is invalid; nested exception is org.xml.sax.SAXParseException: cvc-elt.1: Cannot find the declaration of element ''beans''.
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:404)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:342)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinit........
¿Alguna sugerencia de cómo solucionarlo?
Algo como esto funcionó para mí.
xsi:schemaLocation=
"http://www.springframework.org/schema/beans
classpath:org/springframework/beans/factory/xml/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
classpath:org/springframework/beans/factory/xml/spring-context-3.0.xsd"
Debería verificar que los archivos spring.handlers
y spring.schemas
estén en la ruta de spring.schemas
y tengan el contenido correcto.
Esto se puede hacer con ClassLoader.getResource(..)
. Puede ejecutar el método con un depurador remoto en el entorno de tiempo de ejecución. La configuración extensible de creación de XML se describe en Spring Reference B.5. Registrando el manejador y el esquema .
Normalmente, los archivos deben estar en el contenedor de resorte (springframework.jar / META-INF /) y en el classpath cuando se puede iniciar Spring.
El problema radica en los archivos JAR que usa en su aplicación.
Lo que hice, lo que funcionó, fue ingresar a los JAR para SPRING-CORE, SPRING-BEANS, SPRING-CONTEXT, SPRING-TX que coinciden con la versión que estoy usando. Dentro de la carpeta META-INF, concatené todos los manipuladores de resorte y spring.schemas que vienen en esos JAR.
Maté a dos pájaros de un tiro, resolví el problema de los esquemas así que esto también funciona correctamente en modo fuera de línea.
PD: probé el plugin maven para SHADE y los transformadores pero eso no funcionó.
Elimina las jarras que agregaste recientemente en la web-inf -> lib. por ejemplo jstl jarras.
En caso de que alguien llegue aquí por la misma raíz que yo, respondo a este problema porque estaba construyendo un solo JAR con todas las dependencias, incluidos Spring JAR. Como resultado, se sobrescribió el archivo spring.schemas en algunos de los directorios META-INF de Spring JARs.
Encontré soluciones sugeridas aquí: ¿Cómo crear un contenedor ejecutable basado en la primavera con maven?
Encontré un problema similar hoy. En mi caso, fue el plugin de la sombra el culpable, además de que springframework.org tuvo una interrupción. El siguiente fragmento despejó las cosas:
<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.schemas</resource>
</transformer>
<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.handlers</resource>
</transformer>
HTH alguien
Lo solucioné
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:util="http://www.springframework.org/schema/util"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:security="http://www.springframework.org/schema/security"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-2.0.xsd
http://www.springframework.org/schema/context
classpath:spring-context-2.1.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-2.0.xsd"
>
classpath:spring-context-2.1.xsd
es la clave para trabajar en modo fuera de línea (sin conexión a Internet). También copié spring-context-2.1.xsd
cerca (mismo directorio) del archivo application-context.xml
Me encontré con este problema similar también. En mi caso, mi resolución es bastante diferente. Aquí está mi archivo xml de contexto de primavera:
...
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
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.xsd">
...
No estoy especificando ninguna versión xsd porque quiero que Spring use la última versión de xsd dentro de las dependencias de primavera. La versión de primavera que mi aplicación usó fue spring-beans-4.3.1.RELEASE.jar: 4.3.1.RELEASE y cuando ensamblé mi aplicación en jar, todas las dependencias de primavera existen en mi classpath. Sin embargo, recibí el siguiente error durante el inicio de mi contexto de aplicación de primavera:
org.xml.sax.SAXParseException: schema_reference.4: Failed to read schema document ''http://www.springframework.org/schema/beans/spring-beans.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>.
Después de un tiempo difícil de solución de problemas, encontré que el problema se debe a la index.list dentro de la carpeta META-INF de mi archivo jar. Con el archivo index.list , los controladores de espacio de nombres de primavera no se pueden ubicar para analizar correctamente el contexto de la aplicación de primavera xml. Puede leer más sobre esta edición de primavera SPR-5705
Al eliminar la indexación de mi maven-jar-plugin , logro resolver el problema. Espero que esto ahorre algunas veces a las personas que tienen el mismo problema.
Me gustaría agregar algún aspecto adicional de esta discusión. En el sistema operativo Windows, he observado que cuando un archivo jar que contiene el esquema se almacena en un directorio cuya ruta contiene un carácter de espacio, por ejemplo, como en el siguiente ejemplo
"c:/Program Files/myApp/spring-beans-4.0.2.RELEASE.jar"
luego, especificar la URL de ubicación del esquema de la siguiente manera no es suficiente cuando se está desarrollando una aplicación independiente que también debería funcionar sin conexión
<beans
xsi:schemaLocation="
http://www.springframework.org/schema/beans org/springframework/beans/factory/xml/spring-beans-2.0.xsd"
/>
He aprendido que el resultado de dicha ubicación de esquema La resolución de URL es un archivo que tiene una ruta como la siguiente
"c:/Program%20Files/myApp/spring-beans-4.0.2.RELEASE.jar"
Cuando comencé mi aplicación desde otro directorio que no contenía espacio en su ruta, la resolución de la ubicación del esquema funcionó bien. Tal vez alguien se enfrentó a problemas similares? Sin embargo, descubrí que el protocolo de classpath funciona bien en mi caso
<beans
xsi:schemaLocation="
http://www.springframework.org/schema/beans classpath:org/springframework/beans/factory/xml/spring-beans-2.0.xsd"
/>
Necesita agregar ubicaciones de esquema a su definición de bean, y luego se pueden encontrar en classpath en lugar de buscarse en la red. Debido a sus problemas de formato, no estoy 100% seguro de que ya no esté haciendo esto.
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd">
<!-- empty: the beans we use are in the base class''s context. -->
</beans>
No es necesario utilizar el protocolo classpath: en su schemaLocation URL si el espacio de nombres está configurado correctamente y el archivo XSD está en su classpath.
Spring doc " Registrar el controlador y el esquema " muestra cómo se debe hacer.
En su caso, el problema probablemente fue que el jarro de contexto de primavera en su classpath no era 2.1. Por eso, cambiar el protocolo a classpath: y poner el 2.1 XSD específico en su classpath solucionó el problema.
Por lo que he visto, hay 2 esquemas definidos para el XSD principal contenido en un contenedor spring- *. Una vez para resolver la URL del esquema con la versión y una vez sin ella.
Como ejemplo, vea esta parte de los contenidos de spring.schemas en spring-context-3.0.5.RELEASE.jar:
http/://www.springframework.org/schema/context/spring-context-2.5.xsd=org/springframework/context/config/spring-context-2.5.xsd
http/://www.springframework.org/schema/context/spring-context-3.0.xsd=org/springframework/context/config/spring-context-3.0.xsd
http/://www.springframework.org/schema/context/spring-context.xsd=org/springframework/context/config/spring-context-3.0.xsd
Esto significa que (en xsi: schemaLocation)
http://www.springframework.org/schema/context/spring-context-2.5.xsd
será validado contra
org/springframework/context/config/spring-context-2.5.xsd
en el classpath.
http://www.springframework.org/schema/context/spring-context-3.0.xsd
o
http://www.springframework.org/schema/context/spring-context.xsd
será validado contra
org/springframework/context/config/spring-context-3.0.xsd
en el classpath.
http://www.springframework.org/schema/context/spring-context-2.1.xsd
no está definido, por lo que Spring lo buscará utilizando la URL literal definida en schemaLocation.
Si está utilizando eclipse para su desarrollo, es útil instalar el complemento STS para Eclipse [de marketPlace para la versión específica de eclipse.
Ahora, cuando intente crear un nuevo archivo de configuración en una carpeta (normalmente recursos) dentro del proyecto, las opciones tendrán una "Carpeta de Primavera" y podrá elegir una opción de "Spring Bean Definition File" Spring> Spring Bean Configuation File.
Con esta opción seleccionada, cuando sigue los pasos, le pide que seleccione espacios de nombres y las versiones específicas:
Y así la posibilidad de tener un frasco inexistente o una versión anterior puede ser eliminada.
También habría publicado imágenes, pero mi reputación es bastante baja .. :(
Si no hay conexión a Internet en su plataforma y usa Eclipse, siga estos pasos (resuelve mi problema)
- Encuentre los archivos xsd exactos (Puede descomprimir estos archivos desde sus jarras. Por ejemplo, spring-beans-xyxsd en spring-beans-xyzRELEASE.jar)
- Agregue estos archivos xsd al catálogo XML de Eclipse. (Preferencias-> XML-> Catálogo XML, Agregar archivos)
- Agregue la ubicación de estos archivos al archivo de configuración. (Tenga cuidado, escriba la versión exacta del archivo)
Ejemplo:
xsi: schemaLocation = " http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-x.y.xsd "
Solo asegúrese de que el archivo jar de resorte correspondiente se encuentre en su classpath de tiempo de ejecución. En mi caso, nos faltaba spring-tx-4.3.4.RELEASE.jar desde classpath en tiempo de ejecución. Después de agregar este jar, el problema fue resuelto.
Solucionamos el problema al hacer esto:
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(true);
factory.setValidating(false); // This avoid to search schema online
factory.setAttribute("http://java.sun.com/xml/jaxp/properties/schemaLanguage", "http://www.w3.org/2001/XMLSchema");
factory.setAttribute("http://java.sun.com/xml/jaxp/properties/schemaSource", "TransactionMessage_v1.0.xsd");
Tenga en cuenta que nuestra aplicación es una aplicación fuera de línea independiente de Java.
Tuve el mismo problema cuando uso spring-context version 4.0.6 y spring-security versión 4.1.0.
Al cambiar la versión Spring-Security a la 4.0.4 (porque 4.0.6 of spring-security no está disponible) en my pom y security xml -> schemaLocation, se compila sin internet.
Eso significa que también puedes resolver esto por:
cambiando spring-security a una versión más vieja o misma que spring-context.
cambiando el contexto de primavera a una versión más nueva o misma que la de primavera.
(de cualquier manera primavera-contexto para ser más nueva o la misma versión para primavera-seguridad)
Tuve este problema Para la posteridad, mi excepción fue:
org.xml.sax.SAXParseException; lineNumber: 7; columnNumber: 117;
schema_reference.4: Failed to read schema document
''http://www.springframework.org/schema/beans/spring-beans-4.2.xsd''
Lo resolví cuando me di cuenta de que la versión de spring-beans
especificada en mi Maven pom.xml
era 4.1.x
, lo que significaba que el específico .xsd
no se podía encontrar en el classpath.
Esto estuvo enmascarado por un tiempo prolongado porque normalmente estoy en línea, así que pensé que estar desconectado había "roto" la compilación. Pero realmente no tenía nada que ver con eso. Al actualizar mi pom.xml
para especificar la versión correcta de spring-beans
, a saber 4.2.x
, lo arreglé.