从vertx写入MongoDB时的org.bson.codecs.configuration.CodecConfigurationException

时间:2019-04-20 05:06:53

标签: vert.x mongodb-java

我有一个公开的Connection类,它扩展了JsonObject。要存储Connection对象,我有以下静态方法:

  public static Future<Void> storeConnection(MongoClient mc, Connection cnx) {
    Future<Void> fut = Future.future();
    mc.save("coll", cnx, ar -> {
        if(ar.succeeded()) {
          fut.complete();
        }
        else {
          fut.fail(ar.cause());
        }
      });
    return fut;
  }

呼叫mc.save("coll", cnx, ar -> {...})时出现异常org.bson.codecs.configuration.CodecConfigurationException。我尝试了一些(显然无用的)事情,例如将签名更改为cnxJsonObject,将cnx转换为JsonObject甚至创建JsonObject toJsonObject() { return (JsonObject)this; }方法。我有同样的例外。

但是,当我将mc.save("coll", cnx, ar -> {...})替换为mc.save("coll", new JsonObject().put("foo", "bar"), ar -> {...})时,写入成功。

我不知道自己在做什么错。

更新:我按组成更改了继承:

public class Connection {
  private JsonObject data;
  ...
  // and then 
 public JsonObject jsonObject() { return data; }
  ...
}

,然后mc.save("coll", cnx.jsonObject(), ar -> { ... });不再抱怨。

但是,我不明白继承案例有什么问题。

0 个答案:

没有答案