在spring java中删除mongo

时间:2017-04-05 11:09:33

标签: java spring mongodb maven exception

我试图通过使用java中的spring数据从mongoDB中删除文档

这是我的maven dependecies:

<parent>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-parent</artifactId>
    <version>Brixton.SR1</version>
    <relativePath/>
</parent>
<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>

我使用MongoRepository在java中定义我的存储库:

public interface FilesInfoRepository extends MongoRepository<MyCollectionClass, String> { ... }

这是一个简短的例外:

**java.lang.NoClassDefFoundError: com/mongodb/RemoveRequest**

以下是完整的例外情况:

 ERROR [[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Handler processing failed; nested exception is java.lang.NoClassDefFoundError: com/mongodb/RemoveRequest] with root cause java.lang.NoClassDefFoundError: com/mongodb/RemoveRequest
    at com.mongodb.DBCollectionImpl.remove(DBCollectionImpl.java:223) ~[mongo-java-driver-2.13.3.jar!/:na]
    at com.mongodb.DBCollectionImpl.remove(DBCollectionImpl.java:203) ~[mongo-java-driver-2.13.3.jar!/:na]
    at com.mongodb.DBCollection.remove(DBCollection.java:300) ~[mongo-java-driver-2.13.3.jar!/:na]
    at com.mongodb.DBCollection.remove(DBCollection.java:327) ~[mongo-java-driver-2.13.3.jar!/:na]
    at org.springframework.data.mongodb.core.MongoTemplate$13.doInCollection(MongoTemplate.java:1295) ~[spring-data-mongodb-1.8.4.RELEASE.jar!/:na]
    at org.springframework.data.mongodb.core.MongoTemplate$13.doInCollection(MongoTemplate.java:1279) ~[spring-data-mongodb-1.8.4.RELEASE.jar!/:na]
    at org.springframework.data.mongodb.core.MongoTemplate.execute(MongoTemplate.java:462) ~[spring-data-mongodb-1.8.4.RELEASE.jar!/:na]
    at org.springframework.data.mongodb.core.MongoTemplate.doRemove(MongoTemplate.java:1279) ~[spring-data-mongodb-1.8.4.RELEASE.jar!/:na]
    at org.springframework.data.mongodb.core.MongoTemplate.remove(MongoTemplate.java:1265) ~[spring-data-mongodb-1.8.4.RELEASE.jar!/:na]
    at org.springframework.data.mongodb.repository.support.SimpleMongoRepository.delete(SimpleMongoRepository.java:155) ~[spring-data-mongodb-1.8.4.RELEASE.jar!/:na]
    at org.springframework.data.mongodb.repository.support.SimpleMongoRepository.delete(SimpleMongoRepository.java:164) ~[spring-data-mongodb-1.8.4.RELEASE.jar!/:na]
    at org.springframework.data.mongodb.repository.support.SimpleMongoRepository.delete(SimpleMongoRepository.java:176) ~[spring-data-mongodb-1.8.4.RELEASE.jar!/:na]
    at sun.reflect.GeneratedMethodAccessor254.invoke(Unknown Source) ~[na:na]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_121]
    at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_121]
    at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.executeMethodOn(RepositoryFactorySupport.java:483) ~[spring-data-commons-1.11.4.RELEASE.jar!/:na]
    at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.doInvoke(RepositoryFactorySupport.java:468) ~[spring-data-commons-1.11.4.RELEASE.jar!/:na]

我的mongo是一个replicaSet,是另一个数据中心,但我确信连接运行良好,mongo上的其他操作运行良好,只是删除不起作用。

更新: 这是我的完整pom.xml:

<parent>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-parent</artifactId>
<version>Brixton.SR1</version>
<relativePath/>
</parent>
<dependencies>
<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.4</version>
    </dependency>
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-io</artifactId>
        <version>1.3.2</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-mongodb</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-redis</artifactId>
    </dependency>
    <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.2.4</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-test</artifactId>
        <version>4.0.1.RELEASE</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>4.5</version>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>2.4.0</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>2.4.0</version>
        <scope>compile</scope>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

1 个答案:

答案 0 :(得分:0)

包含此依赖项

    <dependency>
      <groupId>org.mongodb</groupId>
      <artifactId>mongodb-driver</artifactId>
      <version>3.4.2</version>
    </dependency>

它会起作用