2012-04-16 31 views
9

Estoy tratando de configurar una aplicación simple de primavera y estoy obteniendo la siguiente excepción. Esto se está ejecutando de forma independiente en Eclipse índigo.Recibiendo un mensaje de error con la primavera "cvc-elt.1: No se puede encontrar la declaración del elemento 'beans'."

Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: Line 2 in XML document from class path resource [context.xml] is invalid; nested exception is org.xml.sax.SAXParseException: cvc-elt.1: Cannot find the declaration of element 'beans'. 
org.xml.sax.SAXParseException: cvc-elt.1: Cannot find the declaration of element 'beans'. 
     at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195) 
     at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:131) 
     at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:384) 
     at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:318) 

Ésta es la porción inicial de mi código:

public static void main(String[] args) { 

     try { 

      BeanFactory beanfactory = new ClassPathXmlApplicationContext(
        "context.xml"); 


      FirstBean bean = (FirstBean) beanfactory.getBean("show"); 

Aquí está mi archivo context.xml:

<?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:aop="http://www.springframework.org/schema/aop" 
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> 
<bean id="anotherBean" class="AnotherBean" /> 
<bean id="show" class="FirstBean"> 
<constructor-arg ref="anotherBean" /> 
</bean> 
<bean id="populateFD" class="PopulateFactData"> 
<constructor-arg value="localhost" /> 
<constructor-arg value="3309" /> 
</bean> 
</beans> 
+0

¿Qué versión de los tarros de primavera está usando? – beny23

Respuesta

12

¿Estás seguro de que tienes spring-beans en el classpath?

Este error normalmente significa que no puede encontrar un spring.schemas (que está en spring-beans.jar) explicándole qué significa ese espacio de nombres.

Otras opciones son que el plugin Maven Shade ha dañado spring.schemas, pero es poco probable que así sea ya que no ha mencionado a Maven.

+0

Era un problema jar/classpath. Estaba usando un pequeño juego de jarras de primavera que venía con un tutorial. Después de que descargué el paquete completo de springsource y agregué esos archivos jar a mi buildpath, el error desapareció. – opike

+0

@FauxFaux He enfrentado el mismo eclipse de problemas con maven. ¿Puedes ayudarme ... –

1

el plugin maven shade parece reemplazar el archivo spring.schemas en los frascos, por lo que la creación de uno propio con todos los contenidos spring.schema individuales de cada uno de los jar debería resolver el problema.

1

Cuando tuve este problema en STS solo limpié el proyecto y funcionó.

+1

pero vuelve cuando lo haces? -> Actualizar proyecto. –

1
Cuestiones relacionadas