2015-10-07 104 views
1

我想用Java和Spring來使用MongoDB。我收到以下錯誤,當我嘗試加載我的應用程序:Spring Data MongoDB錯誤

org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 32 in XML document from file [E:\adaptor-JPSS-SA-RE_ssamanta_20150904-025119\bin\..\cfg\spring\beans.xml] is invalid; nes 
c: The matching wildcard is strict, but no declaration can be found for element 'mongo:mongo'. 
     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:143) 
     at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:178) 
     at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:149) 
     at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:212) 
     at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:126) 
     at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:92) 
     at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:130) 
     at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:467) 
     at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:397) 
     at org.springframework.context.support.FileSystemXmlApplicationContext.<init>(FileSystemXmlApplicationContext.java:140) 
     at org.springframework.context.support.FileSystemXmlApplicationContext.<init>(FileSystemXmlApplicationContext.java:84) 
     at em.sa.interfaces.adaptor.LRVInterfaceAdaptor.main(LRVInterfaceAdaptor.java:219) 
Caused by: org.xml.sax.SAXParseException; lineNumber: 32; columnNumber: 59; **cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'mongo:mongo'.** 
     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:437) 
     at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:368) 
     at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:325) 
     at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator$XSIErrorReporter.reportError(XMLSchemaValidator.java:453) 
     at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.reportSchemaError(XMLSchemaValidator.java:3232) 
     at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.handleStartElement(XMLSchemaValidator.java:1912) 
     at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.emptyElement(XMLSchemaValidator.java:761) 
     at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:353) 
     at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2717) 
     at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:607) 
     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:489) 
     at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:835) 
     at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764) 
     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:237) 
     at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:300) 
     at org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(DefaultDocumentLoader.java:75) 
     at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:388) 

我beans.xml的文件有以下幾點:

<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" 
     xmlns:context="http://www.springframework.org/schema/context" 
     xmlns:util="http://www.springframework.org/schema/util" 
     xmlns:sec="http://cxf.apache.org/configuration/security" 
     xmlns:http="http://cxf.apache.org/transports/http/configuration" 
     xmlns:jaxws="http://java.sun.com/xml/ns/jaxws" 
     xmlns:http-conf="http://cxf.apache.org/transports/http/configuration" 
     xmlns:mongo="http://www.springframework.org/schema/data/mongo" 
     xsi:schemaLocation="http://cxf.apache.org/configuration/security 
    http://cxf.apache.org/schemas/configuration/security.xsd 
    http://cxf.apache.org/transports/http/configuration 
    http://cxf.apache.org/schemas/configuration/http-conf.xsd 
    http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-2.5.xsd 
    http://www.springframework.org/schema/aop 
    http://www.springframework.org/schema/aop/spring-aop-2.5.xsd 
    http://www.springframework.org/schema/context 
     http://www.springframework.org/schema/context/spring-context-3.0.xsd 
     http://www.springframework.org/schema/data/mongo/spring-mongo-1.0.xsd" > 

<mongo:mongo host="localhost" port="27017" id="mongo" /> 

<bean id="mongoTemplate" 
     class="org.springframework.data.mongodb.core.MongoTemplate"> 
    <constructor-arg name="mongo" ref="mongo" /> 
    <constructor-arg name="databaseName" value="SADB" /> 
</bean> 

我有以下三個jar在我的類路徑:

mongo-java-driver-2.12.4.jar 
spring-data-mongodb-1.5.2.RELEASE.jar 
spring-data-commons-1.10.2.RELEASE.jar 

不知道我錯過了什麼。我第一次使用Java和Spring使用MongoDB,並且非常感謝這方面的任何幫助。

回答

3

您在schemaLocation中缺少http://www.springframework.org/schema/data/mongo

您豆類最小的配置應該是這樣的:

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

    <mongo:mongo host="localhost" port="27017" id="mongo"/> 

    <bean id="mongoTemplate" 
      class="org.springframework.data.mongodb.core.MongoTemplate"> 
     <constructor-arg name="mongo" ref="mongo"/> 
     <constructor-arg name="databaseName" value="SADB"/> 
    </bean> 
</beans> 

您也可以考慮從XML配置移開,只是使用Java config宣告春天豆。

+0

感謝Maciej的快速回答。我明天早上試試看,如果它工作與否,請告訴你。問候,Sid – Sid

+0

我添加了http://www.springframework.org/schema/data/mongo和t我沒有更多的獲取上述錯誤,但得到一個新的如下:org.xml.sax.SAXParseException; systemId:http://www.springframework.org/schema/data/mongo/spring-mongo.xsd; lineNumber:134; columnNumber:51; src-resolve:無法將名稱'repository:repositories'解析爲(n)'類型定義'組件。有任何想法嗎???? – Sid

0

解決方法是,您必須設置mongo:mongo-client而不是mongo:mongo

相關問題