Mongodb java.lang.ClassNotFoundException:org.springframework.data.util.CloseableIterator

Mongodb java.lang.ClassNotFoundException:org.springframework.data.util.CloseableIterator,mongodb,spring-data,Mongodb,Spring Data,在部署基于Spring的web应用程序时,我遇到了这个异常,无法找到任何具有CloseableIterator类的jar。敬请推荐/指导 以下是部署应用程序时服务器的堆栈跟踪 HTTP Status 500 - Servlet.init() for servlet rest threw exception type Exception report message Servlet.init() for servlet rest threw exception description

在部署基于Spring的web应用程序时,我遇到了这个异常,无法找到任何具有CloseableIterator类的jar。敬请推荐/指导

以下是部署应用程序时服务器的堆栈跟踪

    HTTP Status 500 - Servlet.init() for servlet rest threw exception

type Exception report

message Servlet.init() for servlet rest threw exception

description The server encountered an internal error that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: Servlet.init() for servlet rest threw exception
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:610)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
    org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
    org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
    org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1721)
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1679)
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    java.lang.Thread.run(Thread.java:745)

root cause

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'usersRepository': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private org.springframework.data.mongodb.core.MongoTemplate com.miet.kmpro.dao.UsersRepository.mongoTemplate; nested exception is java.lang.NoClassDefFoundError: org/springframework/data/util/CloseableIterator
    org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:334)
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1214)
    .................
root cause

org.springframework.beans.factory.BeanCreationException: Could not autowire field: private org.springframework.data.mongodb.core.MongoTemplate com.miet.kmpro.dao.UsersRepository.mongoTemplate; nested exception is java.lang.NoClassDefFoundError: org/springframework/data/util/CloseableIterator
    org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:573)
    org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
    org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:331)
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1214)
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:543)
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
    org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
    org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
    org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
    org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
    org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:772)
    org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:839)
    org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:538)
    org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:668)
    org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:634)
    org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:682)
    org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:553)
    org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:494)
    org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136)
    javax.servlet.GenericServlet.init(GenericServlet.java:158)
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:610)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
    org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
    org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
    org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1721)
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1679)
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    java.lang.Thread.run(Thread.java:745)

root cause

java.lang.NoClassDefFoundError: org/springframework/data/util/CloseableIterator
    java.lang.Class.getDeclaredMethods0(Native Method)
    java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
    java.lang.Class.getDeclaredMethods(Class.java:1975)
    org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:609)
    org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:521)
    org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:507)
    org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.determineCandidateConstructors(AutowiredAnnotationBeanPostProcessor.java:241)
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.determineConstructorsFromBeanPostProcessors(AbstractAutowireCapableBeanFactory.java:1069)
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1042)
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:510)
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
    org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
    org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
    org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
    org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
    org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:1192)
    org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1116)
    org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1014)
    org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:545)
    org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
    org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:331)
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1214)
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:543)
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
    org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
    org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
    org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
    org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
    org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:772)
    org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:839)
    org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:538)
    org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:668)
    org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:634)
    org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:682)
    org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:553)
    org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:494)
    org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136)
    javax.servlet.GenericServlet.init(GenericServlet.java:158)
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:610)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
    org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
    org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
    org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1721)
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1679)
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    java.lang.Thread.run(Thread.java:745)

root cause

java.lang.ClassNotFoundException: org.springframework.data.util.CloseableIterator
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
    java.lang.Class.getDeclaredMethods0(Native Method)
    java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
    java.lang.Class.getDeclaredMethods(Class.java:1975)
    org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:609)
    org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:521)
    org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:507)
    org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.determineCandidateConstructors(AutowiredAnnotationBeanPostProcessor.java:241)
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.determineConstructorsFromBeanPostProcessors(AbstractAutowireCapableBeanFactory.java:1069)
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1042)
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:510)
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
    org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
    org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
    org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
    org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
    org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:1192)
    org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1116)
    org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1014)
    org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:545)
    org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
    org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:331)
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1214)
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:543)
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
    org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
    org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
    org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
    org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
    org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:772)
    org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:839)
    org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:538)
    org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:668)
    org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:634)
    org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:682)
    org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:553)
    org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:494)
    org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136)
    javax.servlet.GenericServlet.init(GenericServlet.java:158)
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:610)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
    org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
    org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
    org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1721)
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1679)
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    java.lang.Thread.run(Thread.java:745)

note The full stack trace of the root cause is available in the Apache Tomcat/7.0.53 logs.
Apache Tomcat/7.0.53
我在项目中使用的库

com.springsource.org.aopalliance-1.0.0.jar
commons-logging-1.1.1.jar
jackson-annotations-2.4.1.jar
jackson-core-2.4.1.jar
jackson-databind-2.4.1.jar
jdom-1.1.3.jar
jstl-1.2.jar
mongo-java-driver-2.9.0.jar
org.springframework.data.core_1.3.1.release.jar
org.springframework.transaction_3.0.5.RELEASE.jar
rome-1.0.jar
spring-aop-4.2.4.RELEASE.jar
spring-aspects-4.2.4.RELEASE.jar
spring-beans-4.2.4.RELEASE.jar
spring-context-4.2.4.RELEASE.jar
spring-context-support-4.2.4.RELEASE.jar
spring-core-4.2.4.RELEASE.jar
spring-data-commons-1.8.0.RELEASE.jar
spring-data-commons-core-1.4.0.RELEASE.jar
spring-data-mongodb-1.8.2.RELEASE.jar
spring-expression-4.2.4.RELEASE.jar
spring-instrument-4.2.4.RELEASE.jar
spring-instrument-tomcat-4.2.4.RELEASE.jar
spring-jdbc-4.2.4.RELEASE.jar
spring-jms-4.2.4.RELEASE.jar
spring-messaging-4.2.4.RELEASE.jar
spring-orm-4.2.4.RELEASE.jar
spring-tx-4.2.4.RELEASE.jar
spring-web-4.2.4.RELEASE.jar
spring-webmvc-4.2.4.RELEASE.jar
rest-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns:beans="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.0.xsd
            http://www.springframework.org/schema/context
            http://www.springframework.org/schema/context/spring-context-4.0.xsd
            http://www.springframework.org/schema/mvc
            http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">

    <context:annotation-config/>
    <context:component-scan base-package="com.miet.kmpro.beans"/>
    <context:component-scan base-package="com.miet.kmpro.dao"/>
    <context:component-scan base-package="com.miet.kmpro.springctrls"/>
    <mvc:annotation-driven />


    <!-- Define the MongoTemplate which handles connectivity with MongoDB -->
    <beans:bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
        <beans:constructor-arg name="mongo" ref="mongo" />
        <beans:constructor-arg name="databaseName" value="kmpro" />
    </beans:bean>

    <!-- Factory bean that creates the MongoDB instance -->
    <beans:bean id="mongo" class="org.springframework.data.mongodb.core.MongoFactoryBean">
        <beans:property name="host" value="localhost"/>
    </beans:bean>

    <!-- Use this post processor to translate any MongoExceptions thrown in @Repository annotated classes -->
    <beans:bean class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor"/>



    <!-- JSON Support -->
    <!--<bean name="viewResolver" class="org.springframework.web.servlet.view.BeanNameViewResolver"/>-->
    <!--<bean name="jsonTemplate" class="org.springframework.web.servlet.view.json.MappingJackson2JsonView"/>-->

</beans:beans>
MultiUserResponse.java

package com.miet.kmpro.dao;

import java.util.List;

import com.miet.kmpro.beans.UserDetails;

public class MultipleUserResponse {
  private boolean success;
  private List<UserDetails> users;

  public MultipleUserResponse(boolean success, List<UserDetails> users) {
    this.success = success;
    this.users = users;
  }

  public boolean isSuccess() {
    return success;
  }
  public void setSuccess(boolean success) {
    this.success = success;
  }
  public List<UserDetails> getUsers() {
    return users;
  }
  public void setUsers(List<UserDetails> users) {
    this.users = users;
  }
}
package com.miet.kmpro.dao;
导入java.util.List;
导入com.miet.kmpro.beans.UserDetails;
公共类多用户响应{
私人布尔成功;
私人名单用户;
公共MultipleUserResponse(布尔成功,列出用户){
成功=成功;
this.users=用户;
}
公共布尔值isSuccess(){
回归成功;
}
public void setSuccess(布尔值成功){
成功=成功;
}
公共列表getUsers(){
返回用户;
}
公共用户(列表用户){
this.users=用户;
}
}
UserRepository.java

package com.miet.kmpro.dao;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import org.springframework.stereotype.Repository;

import com.miet.kmpro.beans.UserDetails;

@Repository
public class UsersRepository{
    public static final String COLLECTION_NAME = "users";

    @Autowired
    private MongoTemplate mongoTemplate;

    public void addUser(UserDetails userDetails) {
        if (!mongoTemplate.collectionExists(UserDetails.class)) {
            mongoTemplate.createCollection(UserDetails.class);
        }
        mongoTemplate.insert(userDetails, COLLECTION_NAME);
    }

    public UserDetails getUserByUserName(String userName) {
        return mongoTemplate.findOne(
        Query.query(Criteria.where("userName").is(userName)), UserDetails.class, COLLECTION_NAME);
    }

    public List<UserDetails> getAllUsers() {
        return mongoTemplate.findAll(UserDetails.class, COLLECTION_NAME);
    }

    public UserDetails deleteUsers(String userName) {
        UserDetails userDetails = mongoTemplate.findOne(
        Query.query(Criteria.where("userName").is(userName)), UserDetails.class, COLLECTION_NAME);
        mongoTemplate.remove(userDetails, COLLECTION_NAME);

        return userDetails;
    }

    public UserDetails updateIssuer(String userName, UserDetails userDetails) {
        Query query = new Query();
        query.addCriteria(Criteria.where("userName").is(userName));

        Update update = new Update();
        update.set("firstName", userDetails.getFirstName());
        update.set("lastName", userDetails.getLastName());

        mongoTemplate.updateFirst(query, update, UserDetails.class);

        return userDetails;
    }
}
package com.miet.kmpro.dao;
导入java.util.List;
导入org.springframework.beans.factory.annotation.Autowired;
导入org.springframework.data.mongodb.core.MongoTemplate;
导入org.springframework.data.mongodb.core.query.Criteria;
导入org.springframework.data.mongodb.core.query.query;
导入org.springframework.data.mongodb.core.query.Update;
导入org.springframework.stereotype.Repository;
导入com.miet.kmpro.beans.UserDetails;
@存储库
公共类用户存储{
公共静态最终字符串集合\u NAME=“users”;
@自动连线
私有MongoTemplate MongoTemplate;
public void addUser(UserDetails UserDetails){
如果(!mongoTemplate.collectionExists(UserDetails.class)){
createCollection(UserDetails.class);
}
插入(用户详细信息、集合名称);
}
公共用户详细信息getUserByUserName(字符串用户名){
返回mongoTemplate.findOne(
Query.Query(Criteria.where(“userName”).is(userName))、UserDetails.class、COLLECTION\u NAME);
}
公共列表getAllUsers(){
返回mongoTemplate.findAll(UserDetails.class,集合名称);
}
公共用户详细信息删除用户(字符串用户名){
UserDetails UserDetails=mongoTemplate.findOne(
Query.Query(Criteria.where(“userName”).is(userName))、UserDetails.class、COLLECTION\u NAME);
mongoTemplate.remove(用户详细信息、集合名称);
返回用户详细信息;
}
public UserDetails updateIssuer(字符串用户名,UserDetails UserDetails){
查询=新查询();
query.addCriteria(Criteria.where(“userName”).is(userName));
更新=新更新();
update.set(“firstName”,userDetails.getFirstName());
update.set(“lastName”,userDetails.getLastName());
updateFirst(查询、更新、UserDetails.class);
返回用户详细信息;
}
}
UsersCntrl.java

package com.miet.kmpro.springrestcntrls;

import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.ResponseBody;


import com.miet.kmpro.beans.UserDetails;
import com.miet.kmpro.beans.Subscriptions;
import com.miet.kmpro.beans.FeedCategory;
import com.miet.kmpro.dao.UsersRepository;
import com.miet.kmpro.dao.MultipleUserResponse;

import java.util.List;
import java.util.ArrayList;

@RestController
public class UsersCntrl {
    @Autowired
    private UsersRepository usersRepository;


    @CrossOrigin(origins = "http://localhost:8787")
    @RequestMapping(value = "/users/{name}", method = RequestMethod.GET, headers="Accept=application/json")
    //public String getUserDetails(@PathVariable String name) {
    @ResponseBody
    public MultipleUserResponse getUserDetails(@PathVariable String name) {
        List<UserDetails> allUsers = usersRepository.getAllUsers();
        MultipleUserResponse multiUsersInfo = new MultipleUserResponse(true, allUsers);

        return multiUsersInfo;
        //return "{\"userName\":\"Rishi\"}";
    }
}
package com.miet.kmpro.springrestcntrls;
导入org.springframework.web.bind.annotation.PathVariable;
导入org.springframework.web.bind.annotation.RequestMapping;
导入org.springframework.web.bind.annotation.RequestMethod;
导入org.springframework.web.bind.annotation.RestController;
导入org.springframework.web.bind.annotation.CrossOrigin;
导入org.springframework.beans.factory.annotation.Autowired;
导入org.springframework.web.bind.annotation.ResponseBody;
导入com.miet.kmpro.beans.UserDetails;
导入com.miet.kmpro.beans.Subscriptions;
导入com.miet.kmpro.beans.FeedCategory;
导入com.miet.kmpro.dao.UsersRepository;
导入com.miet.kmpro.dao.MultipleUserResponse;
导入java.util.List;
导入java.util.ArrayList;
@RestController
公共类UsersCntrl{
@自动连线
私人用户Repository用户Repository;
@交叉原点(原点=”http://localhost:8787")
@RequestMapping(value=“/users/{name}”,method=RequestMethod.GET,headers=“Accept=application/json”)
//公共字符串getUserDetails(@PathVariable字符串名称){
@应答器
公共MultipleUserResponse getUserDetails(@PathVariable字符串名称){
List alluser=usersRepository.getalluser();
MultipleUserResponse multiUsersInfo=新的MultipleUserResponse(true,allUsers);
返回多用户信息;
//返回“{\”用户名\“:\”Rishi\“}”;
}
}
web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
    <display-name>SpringServiceSample</display-name>
    <welcome-file-list>

SpringServiceSample

    <servlet>
        <servlet-name>rest</servlet-name>
        <servlet-class>
            org.springframework.web.servlet.DispatcherServlet
        </servlet-class>


        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>rest</servlet-name>
        <url-pattern>/service/*</url-pattern>
    </servlet-mapping>

休息
org.springframework.web.servlet.DispatcherServlet
1.
休息
/服务/*
。。。。。
CloseableIterator属于Spring数据核心jar文件

如果找不到此jar,请将其添加到项目中

编辑:

抱歉,发布了错误的链接

您尝试过下面的jar文件吗


主要决议由@blairmeister给出

您需要清理您的类路径。删除spring数据共享核心org.springframework.data.core,并将spring数据共享的版本升级到1.11.1.RELEASE。您可能希望删除org.springframework.transaction_3.0.5.RELEASE,因为所有其他spring框架工件都参考版本4.2.4.RELEASE


剩下的问题与CloseableIterator类无关,这里要理解的主要问题是,每当我们使用外部JAR时,我们都需要参考JAR的最新稳定版本,其中包含引发NoClassDefinitionFoundException的所需类文件m!!

最好显示异常的stacktrace,以便查看引发异常的类。@StefanHegny:请参考以下内容:根本原因org.springframework.beans.factory.BeanCreationException:创建名为“usersRepository”的bean时出错:自动连线依赖项注入失败;嵌套异常为org.springframework.beans.factory.BeanCreationException:无法
    <servlet>
        <servlet-name>rest</servlet-name>
        <servlet-class>
            org.springframework.web.servlet.DispatcherServlet
        </servlet-class>


        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>rest</servlet-name>
        <url-pattern>/service/*</url-pattern>
    </servlet-mapping>