繁体   English   中英

在Mongodb中使用Dropwizard的Maven错误

[英]Maven error using Dropwizard with Mongodb

我试图让Dropwizard与MongoDB一起工作。 但是,当我运行mvn install时,我收到一个奇怪的maven错误。

Dependency convergence error for org.codehaus.jackson:jackson-mapper-asl:1.9.5 paths to dependency are:
+-no.asgari:civilization:1.0-SNAPSHOT
  +-net.vz.mongodb.jackson:mongo-jackson-mapper:1.4.2
    +-org.codehaus.jackson:jackson-mapper-asl:1.9.5
and
+-no.asgari:civilization:1.0-SNAPSHOT
  +-net.vz.mongodb.jackson:mongo-jackson-mapper:1.4.2
    +-de.undercouch:bson4jackson:1.3.0
      +-org.codehaus.jackson:jackson-mapper-asl:1.7.4

我的pom看起来像这样:

<properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <dropwizard.version>0.7.1</dropwizard.version>
    </properties>

    <repositories>
        <repository>
            <id>sonatype-nexus-snapshots</id>
            <name>Sonatype Nexus Snapshots</name>
            <url>http://oss.sonatype.org/content/repositories/snapshots</url>
        </repository>
    </repositories>

    <dependencies>
        <dependency>
            <groupId>io.dropwizard</groupId>
            <artifactId>dropwizard-core</artifactId>
            <version>${dropwizard.version}</version>
        </dependency>
        <dependency>
            <groupId>io.dropwizard</groupId>
            <artifactId>dropwizard-views-freemarker</artifactId>
            <version>${dropwizard.version}</version>
        </dependency>
        <dependency>
            <groupId>io.dropwizard</groupId>
            <artifactId>dropwizard-assets</artifactId>
            <version>${dropwizard.version}</version>
        </dependency>

        <!-- !dropwizard -->
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>3.11-beta1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>3.11-beta1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-examples</artifactId>
            <version>3.11-beta1</version>
        </dependency>
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>17.0</version>
        </dependency>
        <dependency>
            <groupId>net.vz.mongodb.jackson</groupId>
            <artifactId>mongo-jackson-mapper</artifactId>
            <version>1.4.2</version>
        </dependency

这只是我pom的一部分。 除了测试,没有其他依赖项。

如果您不使用Spring或其他与MongoDB无缝集成的第三方库,则可以将MongoJack用作杰克逊映射器。

步骤1-Maven依赖项:

<dependency>
  <groupId>org.mongojack</groupId>
  <artifactId>mongojack</artifactId>
  <version>2.1.0</version>
  <type>bundle</type>
</dependency>

第2步-存储库:

<repositories>
    <repository>
        <id>oss-sonatype</id>
        <name>oss-sonatype</name>
        <url>https://oss.sonatype.org/content/repositories/snapshots/</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>

第3步-映射POJO:

public class MyObject {
  private String id;
  @ObjectId
  @JsonProperty("_id")
  public String getId() {
    return id;
  }
  @ObjectId
  @JsonProperty("_id")
  public void setId(String id) {
    this.id = id;
  }
}

步骤4-插入:

JacksonDBCollection<MyObject, String> coll = JacksonDBCollection.wrap(dbCollection, MyObject.class,
        String.class);
MyObject myObject = ...
WriteResult<MyObject, String> result = coll.insert(myObject);
String id = result.getSavedId();
MyObject savedObject = result.getSavedObject();

第5步-查询:

MyObject foundObject = coll.findOneById(id);

可以在MongoJack官方网站上找到上述示例的其他示例和详细说明。

另外,如果您可以选择使用Spring,请查看Spring-Data-MongoDB项目

编辑:阅读一会后,我发现您使用的映射器实际上是MongoJack的较旧版本。 因此,升级您的代码以使用它的更新版本肯定会给您的项目带来好处。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM