`org.bson.codecs.configuration.CodecConfigurationException` при записи в MongoDB из vertx - PullRequest
1 голос
/ 20 апреля 2019

У меня есть открытый 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. Я попробовал некоторые (очевидно бесполезные) вещи, такие как изменение подписи, чтобы cnx было JsonObject, приведение 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 -> { ... }); больше не жалуется.

Тем не менее, я не понимаю, что не так с делом о наследовании.

...