Micronaut反应性蒙哥设置内部服务器错误



我正在尝试在Java中的Micronaut项目中设置Mongo Reactive客户端,并且我会收到以下错误:

"内部服务器错误:使用该解码时发生异常 自动pojocodec。 以下例外: n ncannot找到一个公共构造函数 "成员"。 n na自定义编解码器或pojocodec可能需要明确 配置并注册以处理此类型。"

我的项目设置如下:

├── Application.java
├── config
│   └── MongoConfiguration.java
├── controller
│   └── MemberController.java
├── model
│   └── Member.java
└── service
    └── MemberService.java

该应用程序正在启动,但是如果我要调用HTTP端点以列出所有成员,则会在帖子中列出的所有错误。

中列出。

我的成员在开始时看起来很简单:

import com.fasterxml.jackson.annotation.JsonProperty;
public class Member {
    private final String firstname;
    private final String lastname;
    public Member( @JsonProperty("firstname") String firstname, @JsonProperty("lastname") String lastname) {
        this.firstname = firstname;
        this.lastname = lastname;
    }
   ....
}
// And my service, has this method where I'm calling mongo
    private MongoCollection<Member> getCollection() {
        configuration.setCollectionName("members");
        return mongoClient.getDatabase(configuration.getDatabaseName())
                .getCollection(configuration.getCollectionName(), Member.class);
    }

我知道设置中有什么问题或需要更多信息?

thx帮助

您的收缩器应用@jsoncreator注释,因为 Member没有默认的构造器,并且具有带有参数的自定义构造函数,带有注释的 @JsonProperty

构造函数/工厂方法,其中每个参数都用jsonproperty或jacksoninject注释,以指示属性名称以绑定到

public class Member {
    private final String firstname;
    private final String lastname;
    @JsonCreator
    public Member(@JsonProperty("firstname") String firstname, 
                  @JsonProperty("lastname") String lastname) {
        this.firstname = firstname;
        this.lastname = lastname;
    }
   ....
}

最新更新