Не удается найти кодек для класса com.mongodb.client.model.geojson.Point - PullRequest
0 голосов
/ 07 апреля 2019

Следующие броски org.bson.codecs.configuration.CodecConfigurationException: Не удается найти кодек для класса com.mongodb.client.model.geojson.Point.

import com.mongodb.client.model.geojson.Point;
import com.mongodb.client.model.geojson.Position;

@Test
public void test() throws Exception{
    BasicDBObject dbo = new BasicDBObject();
    dbo.put("name", "some-name");
    dbo.put("location", new Point(new Position(100, 200)));
    System.out.println(dbo.toJson());
}

Чего мне не хватает?Все, что я хотел, это посмотреть, как драйвер Java сериализует мой объект в JSON.(Java-драйвер MongoDB версии 3.8.0)

1 Ответ

0 голосов
/ 07 апреля 2019

ОК, обнаружена проблема, кодеки по умолчанию в BasicDBObject не охватывают материал geoJSON. Не уверен, что то, что я сделал, правильно, но, похоже, работает.

@Test
public void test() throws Exception{
    CodecRegistry cr = fromProviders(new ValueCodecProvider(), new BsonValueCodecProvider(), new DBObjectCodecProvider(), new GeoJsonCodecProvider());
    codec = cr.get(BasicDBObject.class);

    BasicDBObject dbo = new BasicDBObject();
    dbo.put("name", "some-name");
    dbo.put("location", new Point(new Position(100, 200)));
    System.out.println(dbo.toJson(codec));
}
...