2011-02-11 11 views
13

Tengo un proyecto de resorte construido con el uso de Maven (empaquetado como tarro) (dependencias se copian en un directorio independiente y se añade a la ruta de clase)experta - No se puede encontrar la declaración de 'granos' elemento

quiero ejecutarlo como java-jar

el problema es que cuando lo ejecuto me sale:

Causado por: org.xml.sax.SAXParseException: CVC-elt.1: no se puede encontrar la declaración de elemento 'frijoles'.

Sucede porque spring.schemas y spring.handlers están situados en unos frascos, es decir: la primavera en grano, etc.

¿Hay alguna manera de resolverlo, suponiendo que no quiero usar sombra complemento para descomprimir todas las dependencias y concatenar el contenido de spring.schemas y spring.handlers?

También me gustaría evitar guardar archivos xsd en mi proyecto y cambiar schemaLocation para que apunte a mi ubicación.

<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:camel="http://camel.apache.org/schema/spring" 
    xsi:schemaLocation=" 
     http://www.springframework.org/schema/beans http://http://www.springframework.org/schema/beans/spring-beans-2.5.xsd 
     http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd"> 

    <camel:camelContext> 
     <camel:routeBuilder ref="fakeRouteBuilder"/> 
    </camel:camelContext> 

    <bean id="fakeRouteBuilder" class="<className>" /> 


</beans> 
+0

¿Puedes pegar uno de los archivos de configuración del resorte de configuración? Creo que el problema podría estar allí – Augusto

+0

' \t \t \t \t \t '' – JJT

+0

Compruebe el atributo xsi: schemaLocation'. Parece ser incorrecto, pero también puede ser causado por la vinculación de las URL en los comentarios. En realidad, sería mejor, si editó su pregunta agregando su comentario anterior como un bloque de código (= seleccione el código y haga clic en el botón '{}' para que aparezca como un bloque de código) – jasso

Respuesta

0

Hay una http:// demasiado en su declaración de XSD. Prueba esto:

<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:camel="http://camel.apache.org/schema/spring" 
    xsi:schemaLocation=" 
     http://www.springframework.org/schema/beans  
     http://www.springframework.org/schema/beans/spring-beans-2.5.xsd 
     http://camel.apache.org/schema/spring 
     http://camel.apache.org/schema/spring/camel-spring.xsd"> 

(el suyo fue http://http://www.springframework.org/schema/beans/spring-beans-2.5.xsd)

+0

Mi error, copié esto por accidente - en mi contexto no había "http: // http: //". Me di cuenta de que el error ocurre cuando no hay conexión a Internet. Cuando cambio el embalaje al problema de la guerra desaparece ... – JJT

24

sé 2 situaciones donde se puede tener este problema

  • Si usted no tiene una conexión a Internet (detrás de un proxy, por ejemplo). En ese caso, descargue el XSD, cópielo junto al XML y cambie la ubicación del esquema a xsi:schemaLocation=" http://www.springframework.org/schema/beans spring-beans-2.5.xsd ..."
  • Si tiene una conexión a Internet/todavía tiene el problema, es porque utiliza diferentes versiones de Spring para el XSD y el tarro.
+1

Acabo de tener este problema probando en una red local, sin Internet. El primer punto fue perfecto. – jdmichal

+0

Acabo de enfrentar el mismo problema, ¡solucionado con la primera solución! Gracias – Dough

8

Creo que el XSD sería parte del contenedor de primavera, por lo que no debería ser un problema.

+0

Esta es realmente la respuesta correcta, la primavera tiene el XSD empaquetado y no los descargará. –

+0

ARRIBA ya que esta es efectivamente la respuesta correcta – antoine

0

Recibí ese error cuando mi url XSD apunta a una ubicación diferente que es diferente de la definición de la ubicación XSD en el archivo jar. Por ejemplo, spring-beans-3.0.xsd en lugar de spring-beans-2.5.xsd vise-versa.

2

Tengo el mismo problema porque estaba detrás de un proxy. Yo estaba corriendo una aplicación Spring MVC bajo Tomcat 6. acaba de añadir las siguientes líneas en el archivo de mi biginning catalina.bat y que resolvió mi problema:

set JAVA_OPTS=%JAVA_OPTS% -Dhttp.proxyHost=XXXX -Dhttp.proxyPort=YYYYY -Dhttp.proxyUser=ZZZZ -Dhttp.proxyPassword=XXXXXX 
+0

+1 para "Tengo el mismo problema porque estaba detrás de un proxy" – wxl24life

0

También se puede utilizar el asesoramiento de here para resolver este problema

0

que tenían exactamente el mismo problema y creo que es causada por 2 razones principales:

  • Tiene diferentes versiones para dependencias de seguridad de primavera y referencias de archivos XSD.
  • También podría suceder si utiliza diferentes versiones del marco común del resorte y la seguridad del muelle.
1

que era capaz de resolver un problema similar en la limpieza del archivo xsd de mi caché remota recursos, Ventana> Preferencias> General> Conexiones de red> Caché

+0

Esto también resolvió un problema similar que tenía cuando recibía errores después de cambiar el nombre de un proyecto. Eliminar todos los archivos en el caché y limpiar/reconstruir el proyecto solucionó el problema. – Felby

Cuestiones relacionadas