2012-12-11 2 views
21

J'ai les jars à ressort de spring-3.2.0.RC1.jar et en essayant de mettre en œuvre le programme Apache ActiveMQhelloWorld du tutoriel donné here. Le fichier de configuration XML est:Impossible de trouver la déclaration de l'élément «haricots»

<?xml version="1.0" encoding="UTF-8"?> 

<beans xmlns:jms="http://www.springframework.org/schema/jms" 
    xmlns:p="http://www.springframework.org/schema/p" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns="http://www.springframework.org/schema/beans" 
    xsi:schemalocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans.xsd 
    http://www.springframework.org/schema/jms 
    http://www.springframework.org/schema/jms/spring-jms.xsd"> 

    <bean class="org.apache.activemq.command.ActiveMQQueue" id="destination"> 
     <constructor-arg value="TEST.Q1"></constructor-arg> 
    </bean> 

    <bean class="org.apache.activemq.ActiveMQConnectionFactory" id="connectionFactory" 
     p:brokerurl="tcp://localhost:8161"></bean> 

    <bean class="com.jms.helloworld.listner.MessageListenerImpl" id="simpleMessageListener"> 
     <bean 
      class="org.springframework.jms.listener.DefaultMessageListenerContainer" 
      id="jmsContainer"> 
      <property name="connectionFactory" ref="connectionFactory"></property> 
      <property name="destination" ref="destination"></property> 
      <property name="messageListener" ref="simpleMessageListener"></property> 
     </bean> 
    </bean> 
</beans>  

principale:

public static void main(String[] args) throws JMSException { 
     System.out.println("LISTNER STARTED"); 
     ApplicationContext context = new FileSystemXmlApplicationContext("src/com/jms/helloworld/config/JMSConfig.xml"); 
    } 

**Exception on console** 


LISTNER STARTED 
log4j:WARN No appenders could be found for logger (org.springframework.core.env.StandardEnvironment). 
log4j:WARN Please initialize the log4j system properly. 
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. 
Exception in thread "main" org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 10 in XML document from file [/home/neal/workspace/ActiveMQListener/src/com/jms/helloworld/config/JMSConfig.xml] is invalid; nested exception is org.xml.sax.SAXParseException; lineNumber: 10; columnNumber: 61; cvc-elt.1: Cannot find the declaration of element 'beans'. 
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:396) 
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334) 
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302) 
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:174) 
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:209) 
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180) 
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:243) 
    at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:127) 
    at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:93) 
    at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:131) 
    at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:537) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:451) 
    at org.springframework.context.support.FileSystemXmlApplicationContext.<init>(FileSystemXmlApplicationContext.java:140) 
    at org.springframework.context.support.FileSystemXmlApplicationContext.<init>(FileSystemXmlApplicationContext.java:84) 
    at com.jms.helloworld.test.TestJMSListner.main(TestJMSListner.java:15) 
Caused by: org.xml.sax.SAXParseException; lineNumber: 10; columnNumber: 61; cvc-elt.1: Cannot find the declaration of element 'beans'. 
    at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:198) 
    at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:134) 
    at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:387) 
    at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:321) 
    at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.handleStartElement(XMLSchemaValidator.java:1920) 
    at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.startElement(XMLSchemaValidator.java:709) 
    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:376) 
    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDriver.scanRootElementHook(XMLNSDocumentScannerImpl.java:602) 
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:3080) 
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:899) 
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:625) 
    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:116) 
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:488) 
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:819) 
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:748) 
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123) 
    at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:239) 
    at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:288) 
    at org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(DefaultDocumentLoader.java:75) 
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:388) 
    ... 14 more 

Je ne sais pas ce qui ne va pas avec l'beans.So bien toute suggestion dans un autre question ne permet pas. De l'aide?

+2

le validateur xml se plaint que n'est pas un élément valide. Cela valide dans un site XML externe. pouvez-vous ouvrir http://www.springframework.org/schema/beans/spring-beans.xsd d'où vous êtes? Copie-t-il l'aide locale? pourrait être un problème de pare-feu. – BevynQ

+0

Peut-être cette raison [obtenir erreur message avec ressort-cvc-elt-1 ne peut-trouver-la-déclaration-de-ele] [1] [1]: http://stackoverflow.com/questions/10182857/getting-error-message-with-spring-cvc-elt-1-cannot-find-the-declaration-of-ele?rq=1 – Parvez

Répondre

29

Essayez, vous êtes en supposant Spring 3.1:

<beans xmlns="http://www.springframework.org/schema/beans" 
     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-3.1.xsd"> 

Remplacer 3.1 sur la dernière ligne avec ce majeur version Spring vous utilisez. Signification: il n'y a pas de 3.1.1 XSD même s'il existe une version Spring 3.1.1.

+10

Juste pour être explicite: vous devez faire correspondre votre version de bibliothèque de printemps avec la version XSD. – Stefan

+0

Voir les options dans org.springframework.beans.factory.xml du package spring-beans. –

7

Trouvé sur un autre thread qui a résolu mon problème ... utilisait une connexion Internet moins le réseau.

Dans ce cas, copiez les fichiers XSD de l'URL et le placer à côté du fichier beans.xml et changer le xsi: schemaLocation comme sous:

<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
spring-beans-3.1.xsd"> 
+1

Pas besoin de copier. Le xsd est déjà dans le pot. Quelque chose comme cela devrait fonctionner: xsi: schemaLocation = "http://www.springframework.org/schema/beans classpath: org/springframework/haricots/usine/xml/printemps-haricots-4.1.xsd \t \t \t classpath: org/springframework/context/config/spring-context-4.1.xsd "> –

+0

addind classpath: aginst xsd a fonctionné pour moi – MAX

1

Cette erreur de Vous ne trouvez pas la déclaration de l'élément ' haricots, mais pour une raison tout à fait différent

Il turs ma connexion internet était pas très fiable, donc je décidé de vérifier d'abord pour cette url

http://www.springframework.org/schema/context/spring-context-4.0.xsd

Une fois que j'ai vu que le xsd était ouvert avec succès nettoyer l'Eclipse (IDE) projet et l'erreur a disparu

Si vous essayez ces étapes et toujours obtenir l'erreur puis vérifier la version de printemps afin qu'il corresponde comme mentionné par une autre réponse

<beans xmlns="http://www.springframework.org/schema/beans" 
     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-**[MAYOR.MINOR]**.xsd"> 

Remplacer [MAYOR.MINOR] sur la dernière ligne avec ce majeur.mineur version Spring que vous utilisez

Pour 4.0 Spring http://www.springframework.org/schema/context/spring-context-4.0.xsd

Pour Sprint 3.1 http://www.springframework.org/schema/beans printemps-haricots-3.1.xsd

Tous les contextes sont disponibles ici http://www.springframework.org/schema/context/

0

J'ai eu ce problème et la cause se sont avérés être des espaces blancs (comme le montre points ci-dessous) après la référence de www.springframework.org/schema/beans dans xsi: schemaLocation, à savoir

<beans xmlns="http://www.springframework.org/schema/beans" 
xmlns:context="http://www.springframework.org/schema/context" 
xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:p="http://www.springframework.org/schema/p" 
xsi:schemaLocation=" 
http://www.springframework.org/schema/beans.... 
http://www.springframework.org/schema/beans/spring-beans-4.2.xsd 
http://www.springframework.org/schema/context 
http://www.springframework.org/schema/context/spring-context-4.2.xsd 
http://www.springframework.org/schema/mvc 
http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd"> 
-1

Utilisez cette option pour résoudre votre problème:

<context:annotation-config/> 
1

Ajouter ce code ..Il m'a aidé

<?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" 
     xmlns:aop="http://www.springframework.org/schema/aop" 
     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/context/config/spring-context-3.0.xsd 
     http://www.springframework.org/schema/aop 
     classpath:/org/springframework/aop/config/spring-aop-3.0.xsd 
     ">  
    </beans> 
Questions connexes