2012-12-11 85 views
21

我有彈簧罐spring-3.2.0.RC1.jar並試圖實現Apache ActiveMQhelloWorld程序來自於教程here。 XML配置文件是:找不到元素'beans'的聲明

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

主:

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 

我不知道什麼是錯的beans.So遠在其他問題的任何建議,並沒有幫助。任何幫助?

+2

該xml驗證器抱怨不是一個有效的元素。這在外部xml站點中驗證。你可以從哪裏打開http://www.springframework.org/schema/beans/spring-beans.xsd?是否複製本地幫助?可能是一個防火牆問題。 – BevynQ

+0

可能是這個原因[得到錯誤消息與 - 彈簧CVC-ELT -1-不能找到的最聲明-的-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

回答

29

試試這個,假設你在春季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"> 

與你使用任何主要 Spring版本的最後一行替換3.1。含義:儘管Spring版本爲3.1.1,但沒有3.1.1 XSD。

+10

只是要明確:你必須匹配您的彈簧庫版本與XSD版本。 – Stefan

+0

請參閱spring-beans軟件包的org.springframework.beans.factory.xml中的選項。 –

7

在解決我的問題的另一個線程上發現它...使用的是網絡連接較少的網絡。

在這種情況下,從URL複製XSD文件和旁邊放置的beans.xml的文件並更改XSI:作爲的schemaLocation下:

<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

無需複製。 xsd已經在jar中。像這樣的東西應該工作: XSI:的schemaLocation =「http://www.springframework.org/schema/beans 類路徑:組織/ springframework的/豆/工廠/ XML /彈簧豆-4.1.xsd \t \t \t http://www.springframework.org/schema/context \t \t \t classpath:org/springframework/context/config/spring-context-4.1.xsd「> –

+0

addind classpath:aginst xsd爲我工作 – MAX

1

的這個錯誤找不到元素的聲明「豆,但對於一個完全不同的原因

它TURS我的互聯網連接不是很可靠,所以我決定先檢查此網址

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

一次,我看到了XSD是開放成功地我清理了Eclipse(IDE)項目和錯誤不見了

如果你嘗試這個步驟,並仍然得到錯誤,那麼 檢查彈簧的版本,所以它匹配提到另一個答案

<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"> 

與任何MAJOR.MINOR Spring版本的最後一行替換[MAYOR.MINOR]您正在使用

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

衝刺3.1 http://www.springframework.org/schema/beans 彈簧豆-3.1.xsd

所有的上下文是可在這裏 http://www.springframework.org/schema/context/

0

我有這個問題,根本原因竟然是空白(如圖下面點)XSI的www.springframework.org/schema/beans參考後:的schemaLocation,即

<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

使用此解決你的問題:

<context:annotation-config/> 
1

添加此代碼它幫助我

<?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> 
相關問題