4

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

2012 年 10 月 2 日 8:15:24 PM org.springframework.context.support.AbstractApplicationContext prepareRefresh 信息:刷新 org.springframework.context.support.ClassPathXmlApplicationContext@54d57bcb:启动日期 [Tue Oct 02 20:15:24 SGT 2012];上下文层次结构的根 2012 年 10 月 2 日 8:15:24 PM 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: Invalid NamespaceHandler class [org.springframework.data.mongodb.config. MongoNamespaceHandler] for namespace [http://www.springframework.org/schema/data/mongo]:处理程序类文件或依赖类的问题;嵌套异常是 org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:412) 中的 java.lang.NoClassDefFoundError: org/springframework.beans.factory 中的 org/springframework/data/repository/config/RepositoryConfigurationExtension。 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) 在 org.springframework.beans.factory.support。springframework.beans.FatalBeanException:命名空间 [http://www.springframework.org/schema/data/mongo] 的无效 NamespaceHandler 类 [org.springframework.data.mongodb.config.MongoNamespaceHandler]:处理程序类文件或依赖类有问题; 嵌套异常是 org.springframework.beans.factory.xml.DefaultNamespaceHandlerResolver.resolve(DefaultNamespaceHandlerResolver.java:139) 的 java.lang.NoClassDefFoundError: org/springframework.beans.factory 的 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。

我的 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" />

提前致谢!

4

3 回答 3

3

如果您使用的是 Maven,则应向 spring-data-mongodb 库添加依赖项

<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-mongodb</artifactId>
    <version>1.1.0.M1</version>
</dependency>
于 2012-10-02T15:08:32.377 回答
1

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

  1. 弹簧数据-MongoDB
  2. 弹簧数据公共核心

我得到同样的异常: NoClassDefFoundError: ...RepositoryConfigurationExtension

我已经删除了 pom.xml 中的第二个依赖项,因为第一个“spring-data-mongodb”为第二个添加了隐式依赖项。所以,现在 Maven 自动抓取 spring-data-commons-core 依赖(1.4.0.RELEASE)并且它工作正常!

于 2013-01-04T17:17:11.210 回答
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>
于 2013-10-04T11:49:27.437 回答