2012-04-16 26 views
9

我想設置一個簡單的彈簧應用程序,我得到了下面的異常。這是在eclipse indigo中獨立運行的。用spring獲取錯誤信息「cvc-elt.1:找不到元素'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) 

這裏是我的代碼的初始部分:

public static void main(String[] args) { 

     try { 

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


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

這是我的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

您使用的是哪種版本的彈簧罐? – beny23 2012-04-16 23:28:45

回答

12

您確定您在類路徑上有spring-beans

此錯誤通常意味着它找不到spring.schemas(位於spring-beans.jar),向其解釋該名稱空間的含義。

其他選項是,Maven Shade插件已損壞spring.schemas,但這不可能是這種情況,因爲你還沒有提到Maven。

+0

這是一個jar/classpath問題。我正在使用一個帶有教程的小型彈簧罐。在我從springsource下載完整的包並將這些jar添加到我的構建路徑後,錯誤消失了。 – opike 2012-04-17 16:06:29

+0

@FauxFaux我已經遇到與maven相同的問題eclipse。你能幫我嗎? – 2015-11-03 18:28:38

1

maven樹蔭插件似乎取代了罐子裏的spring.schemas文件,所以創建一個我們自己的以及來自每個jar的所有單獨spring.schema內容應該可以解決問題。

1

當我在STS中遇到這個問題時,我只是清理了一下這個項目,它工作正常。

+1

但是當你做maven時 - > Update項目會回來。 – 2015-08-29 14:04:57

1
相關問題