Spring schemaLocation falla cuando no hay conexión a Internet


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 se pierde mi conexión a Internet, no puedo ejecutar mi aplicación a través de tomcat o jetty.

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 arreglarlo?

Author: Alex Salauyou, 2009-11-13

18 answers

No es necesario utilizar el protocolo classpath: en su URL de schemaLocation 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 fue probablemente que el jar spring-context en su classpath no era 2.1. Es por eso que cambiar el protocolo a classpath: y poner el XSD 2.1 específico en su classpath solucionó el problema.

Por lo que he visto, hay 2 esquemas definidos para el XSD principal contenido en un spring-* jar. Una vez para resolver la URL del esquema con la versión y una vez sin ella.

Como ejemplo ver esta parte de la primavera.contenido de esquemas en spring-context-3.0.5.LANZAR.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 

Se validará 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.

 108
Author: David Resnick,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-02-02 10:03:11

Lo resolví

<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 offline (sin conexión a Internet). También copié spring-context-2.1.xsd cerca de (mismo directorio) el contexto de la aplicación.archivo xml

 27
Author: Altug,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-02-19 01:06:22

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"
 16
Author: godlikeNoob,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-12-20 08:22:17

En caso de que alguien llegue aquí a través de la misma raíz que yo, encontré este problema porque estaba construyendo un solo JAR con todas las dependencias, incluidos los JARs de primavera. Como resultado, el resorte .el archivo schemas en algunos de los directorios META-INF de Spring JARs fue sobrescrito.

He encontrado soluciones sugeridas aquí: ¿Cómo crear jar ejecutable basado en spring con maven?

 6
Author: Ed .,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:02:43

Se encontró con un problema similar hoy. En mi caso, fue el plugin de sombra que fue el culpable, además de springframework.org hay un corte. El siguiente fragmento aclaró 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

 5
Author: zackurey,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-02-08 20:14:36

Debe comprobar que los archivos spring.handlers y spring.schemas están en la ruta de clase y tienen el contenido correcto.

Esto se puede hacer con ClassLoader.getResource(..). Puede ejecutar el método con un depurador remoto en el entorno de ejecución. La configuración de creación XML extensible se describe en la Referencia de resorte B. 5. Registrar el controlador y el esquema.

Normalmente, los archivos deben estar en el frasco de primavera (springframework.jar / META-INF/) y en el classpath cuando la primavera puede ser iniciar.

 4
Author: Thomas Jung,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-11-13 14:40:27

Debe agregar ubicaciones de esquema a su definición de bean, y luego se pueden encontrar en classpath en lugar de buscarlas en la red. Dados sus problemas de formato, no estoy 100% seguro de que no esté haciendo esto ya.

<?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>
 1
Author: bmargulies,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-11-13 13:55:36

Resolvimos el problema haciendo 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 independiente de Java sin conexión.

 1
Author: jyz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-10-03 15:10:07

Si está utilizando eclipse para su desarrollo , ayuda si instala el complemento STS para Eclipse [ del mercado para la versión específica de eclipse .

Ahora, cuando intenta crear un nuevo archivo de configuración en una carpeta (normalmente recursos) dentro del proyecto, las opciones tendrían una "Carpeta Spring" y puede elegir una opción "Spring Bean Definition File" Spring > Archivo de configuración de Spring Bean .

Con esta opción seleccionada, cuando sigue los pasos, le pregunta para seleccionar los espacios de nombres y las versiones específicas:

Y así se puede eliminar la posibilidad de tener un jar inexistente o una versión antigua .

También habría publicado imágenes , pero mi reputación es bastante baja.. :(

 1
Author: Roshan Khandelwal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-04-03 20:16:22

El problema radica en los archivos JAR que utiliza en su aplicación.

Lo que hice, que funcionó, fue entrar en los frascos para SPRING-CORE, SPRING-BEANS, SPRING-CONTEXT, SPRING-TX que coinciden con la versión que estoy usando. Dentro de la carpeta META-INF, concatenado toda la primavera.handlers y spring.esquemas que vienen en esos frascos.

Maté dos pájaros de un tiro, resolví el problema de los esquemas por lo que esto también funciona correctamente en modo offline.

P.d. Probé el maven plugin para la SOMBRA y los transformadores, pero que no funcionó.

 1
Author: Jose Luis Mendez,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-02-05 17:57:39

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 significa que el .xsd específico no se podía encontrar en el classpath.

Esto fue enmascarado durante mucho tiempo porque normalmente estoy en línea, así que pensé que estar fuera de línea había "roto" la construcción. Pero realmente no tenía nada que ver con eso. Actualizando mi pom.xml para especificar la versión correcta de spring-beans, es decir, 4.2.x, lo arreglé.

 1
Author: Stewart,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-03-02 21:22:45

Buscar ruta de clase

Si está utilizando eclipse, haga clic en el archivo jar correspondiente. Goto - > META-INF - > abrir archivo spring.esquemas

Verás las líneas algo así como abajo.

Http://www.springframework.org/schema/context/spring-context.xsd=org/springframework/context/config/spring-context-3.1.xsd

Copie after = y configure beans algo 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">

 1
Author: Santhosh Hirekerur,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-05-16 04:38:46

Me gustaría añadir algún aspecto adicional de esta discusión. En el sistema operativo Windows he observado que cuando un archivo jar que contiene 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"

A continuación, especificar la URL de ubicación del esquema de la siguiente manera no es suficiente cuando se está desarrollando alguna aplicación independiente que debería funcionar también 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 URL de ubicación de esquema resolution es un archivo que tiene una ruta como la siguiente

"c:\Program%20Files\myApp\spring-beans-4.0.2.RELEASE.jar"

Cuando inicié mi aplicación desde algún otro directorio que no contenía caracteres de espacio en su ruta, entonces la resolución de ubicación del esquema funcionó bien. ¿Tal vez alguien se enfrentó a problemas similares? Sin embargo, descubro que el protocolo 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"
    />
 0
Author: Damiano,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-04-15 11:02:12

Me había encontrado con este problema similar también. En mi caso, mi resolución es bastante diferente. Aquí está mi archivo xml de contexto de spring:

...
<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 de xsd ya que quiero que spring use la última versión de xsd dentro de las dependencias de spring. La versión spring que mi aplicación usó fue spring-beans-4.3.1.LANZAR.frasco: 4.3.1.RELEASE y cuando ensamblo mi aplicación en jar, todas las dependencias de spring existen en mi classpath. Sin embargo, recibí el siguiente error durante 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 resolución de problemas, encontré que el problema se debe al índice .list dentro de la carpeta META-INF de mi archivo jar. Con índice.list file, los manejadores de espacio de nombres spring no se pueden localizar para analizar correctamente el xml de contexto de la aplicación spring. Puede leer más sobre este número de primavera SPR-5705

Al eliminar la indexación de mi maven-jar-plugin, me las arreglo para resolver el problema. Espero que esto ahorrará algunas veces para las personas que tienen el mismo problema.

 0
Author: Andy Ng,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-10-05 03:55:33

Solo asegúrese de que el archivo spring jar relevante esté en su classpath de tiempo de ejecución. En mi caso nos faltaba spring-tx-4.3.4.LANZAR.jar de runtime classpath. Después de agregar este frasco, el problema se resolvió.

 0
Author: Hari,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-11-17 20:28:29

Si no hay conexión a Internet en su plataforma y utiliza Eclipse, siga estos pasos (resuelve mi problema)

  1. Encuentre los archivos xsd exactos (Puede descomprimir estos archivos de sus jars. Por ejemplo, spring-beans-x. y. xsd en spring-beans-x.y.z.RELEASE.jar)
  2. Agregue estos archivos xsd al catálogo XML de Eclipse. (Preferencias - > XML - > Catálogo XML, Añadir archivos)
  3. 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 "

 0
Author: gbii,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-12-29 10:55:36

Tuve el mismo problema cuando estoy usando spring-context versión 4.0.6 y spring-versión de seguridad 4.1.0.

Al cambiar la versión de spring-security a 4.0.4 (porque 4.0.6 de spring-security no está disponible) en mi pom y xml de seguridad schem>schemaLocation, se compila sin Internet.

Por lo que significa que también puede resolver esto por:

  • Cambiar spring-security a una versión anterior o la misma que spring-context (en inglés).

  • Cambiando primavera-contexto a un más reciente o la misma versión que primavera-seguridad.

(de cualquier manera spring-context para ser más reciente o la misma versión de spring-security)

 0
Author: Yasitha Bandara,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-02-12 17:56:34

Elimina los jars que has añadido recientemente en la web-inf ->lib. por ejemplo jstl jars.

 -1
Author: rahul,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-08-22 19:57:11