vert.x - `org.bson.codecs.configuration.CodecConfigurationException` 从 vertx 写入 MongoDB
问题描述
我有一个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
为 a JsonObject
,转换cnx
为 aJsonObject
甚至创建一个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 -> { ... });
不再抱怨。
然而,我不明白继承案有什么问题。
解决方案
推荐阅读
- wordpress - 需要一些解决方案来解决 WordPress AMP 的 404 错误
- encryption - 如何在 Salesforce 中安全地存储加密密钥?
- ios - Xcode 网页视图。在 Safari 中打开 target="_blank" 链接
- bash - 这些 Bash 间接方法有什么区别?
- python - Python正则表达式:检测包含特定单词的模式?
- r - 在每个滚动中添加一个 selectInput 并计算选择选项之间的时间
- ubuntu - 我无法在同一台服务器下 ping 域,但可以从其他机器
- lua - 当我使用“for”填充它时,我在 lua 中的表只打印 nil
- python - 熊猫按时间顺序重复行
- amazon-web-services - RethinkDB 与 i3.Metal 实例上的 1.5k 写入作斗争