首页 文章

spring mongo数据异常,通过xml进行配置

提问于
浏览
4

希望有人可以帮助我 . 我正在使用mongo处理spring-data,但不知怎的,它给了我一个运行时错误:

2012年10月2日下午8:15:24 org.springframework.context.support.AbstractApplicationContext prepareRefresh INFO:刷新org.springframework.context.support.ClassPathXmlApplicationContext@54d57bcb:启动日期[Tue Oct 02 20:15:24 SGT 2012] ; org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions INFO:从类路径资源加载XML bean定义[mongodb / configuration / mongo-config.xml]线程中的异常“main”org.springframework.beans.factory.BeanDefinitionStoreException:从类路径资源[mongodb / configuration / mongo-config.xml]解析XML文档的意外异常;嵌套异常是org.springframework.beans.FatalBeanException:名称空间[http://www.springframework.org/schema/data/mongo]无效的NamespaceHandler类[org.springframework.data.mongodb.config.MongoNamespaceHandler]:处理程序问题类文件或依赖类;嵌套异常是org.springframework.beans.factory中的org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:412)中的java.lang.NoClassDefFoundError:org / springframework / data / repository / config / RepositoryConfigurationExtension . xg.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334)位于org.springframework.beans.factory.sfactory.FolBr.DempinitionReader.loadBeanDefinitions上的org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:30) . (AbstractBeanDefinitionReader . ) java:174)org.springframework上的org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:209)org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180) .beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefiniti onReader.java:243)atg.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:127)org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:93)at org.springframework.context .support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:131)org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:535)org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:449) )atg.springframework.context.support.ClassPathXmlApplicationContext . (ClassPathXmlApplicationContext.java:139)org.springframework.context.support.ClassPathXmlApplicationContext . (ClassPathXmlApplicationContext.java:83)at parseXML.main(parseXML.java:36)at sun sun.reflect.NativeM的.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)位于com.intellij.rt.execution的java.lang.reflect.Method.invoke(Method.java:601)的sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) .application.AppMain.main(AppMain.java:120)引起:org.springframework.beans.FatalBeanException:名称空间无效的NamespaceHandler类[org.springframework.data.mongodb.config.MongoNamespaceHandler] [http://www.springframework .org / schema / data / mongo]:处理程序类文件或依赖类的问题;嵌套异常是org.springframework.beans.factory中的org.springframework.beans.factory.xml.DefaultNamespaceHandlerResolver.resolve(DefaultNamespaceHandlerResolver.java:139)中的java.lang.NoClassDefFoundError:org / springframework / data / repository / config / RepositoryConfigurationExtension . xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1426)在org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1421)在org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader . java:184)at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:140)at atorg.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:111)位于org.springframework.beans.factory的org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:493) . xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:390)... 19更多引起:java.lang.NoClassDefFoundError:org / springframework / data / repository / config / RepositoryConfigurationExtension at java.lang.Class.getDeclaredConstructors0(Native Method)at java.lang.Class.privateGetDeclaredConstructors(Class.java:2404)位于java.lang.Class.getConstructor0(Class.java:2714),位于org.springframework.beans的java.lang.Class.getDeclaredConstructor(Class.java:2002) .BeanUtils.instantiateClass(BeanUtils.java:104)at org.springframework.beans.factory.xml.DefaultNamespaceHandlerResolver.resolve(DefaultNamespaceHandlerResolver.java:129)... 26更多引起:java.lang.ClassNotFoun dException:org.springframework.data.repository.config.RepositoryConfigurationExtension at java.net.URLClassLoader $ 1.run(URLClassLoader.java:366)at java.net.URLClassLoader $ 1.run(URLClassLoader.java:355)at java.security . 位于java.lang.ClassLoader.findClass(URLClassLoader.java:354)的AccessController.doPrivileged(Native Method)位于java.lang.ClassLoader.loadClass(ClassLoader.java:423)的sun.misc.Launcher $ AppClassLoader.loadClass(Launcher . java:308)at java.lang.ClassLoader.loadClass(ClassLoader.java:356)... 32更多

我的mongo-config.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:context="http://www.springframework.org/schema/context"
   xmlns:mongo="http://www.springframework.org/schema/data/mongo"
   xsi:schemaLocation="http://www.springframework.org/schema/context
      http://www.springframework.org/schema/context/spring-context-3.0.xsd
      http://www.springframework.org/schema/data/mongo
      http://www.springframework.org/schema/data/mongo/spring-mongo-1.0.xsd
      http://www.springframework.org/schema/beans
      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<mongo:db-factory dbname="testuserexample" host="localhost" port="27017" />

<bean id="mongoTemplate">
    <constructor-arg ref="mongoDbFactory" />
</bean>

<mongo:repositories base-package="mongodb.repository" />

提前致谢!

3 回答

  • 1

    我也得到了同样的错误 . 我找到了一个解决方案 . 问题是我已经更改了我的pom.xml并为两个依赖项显式设置了最后版本(1.1.0.RELEASE):

    • spring-data-mongodb

    • spring-data-commons-core

    我得到了相同的异常:NoClassDefFoundError:... RepositoryConfigurationExtension

    我删除了我的pom.xml中的第二个依赖项,因为第一个“spring-data-mongodb”为第二个添加了一个隐含的依赖 . 所以,现在Maven自动获取spring-data-commons-core依赖(1.4.0.RELEASE),它运行正常!

  • 3

    如果您使用的是Maven,则应该将相关性添加到spring-data-mongodb库中

    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-mongodb</artifactId>
        <version>1.1.0.M1</version>
    </dependency>
    
  • 0

    如果您使用Maven,这是唯一需要的依赖性: -

    <dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-mongodb</artifactId>
    <version>1.2.0.RELEASE</version>
    </dependency>
    

    应用程序上下文文件中需要的配置: -

    <bean id="mongo" class="org.springframework.data.mongodb.core.MongoFactoryBean">
            <property name="host" value="localhost" />
        </bean>
        <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
            <constructor-arg ref="mongo" />
            <constructor-arg value="test" />
        </bean>
    

相关问题