我的项目中有一个奇怪的问题。我基于Jersey + Grizzly2 + Moxy从mvn原型中引导了一个REST端点。 此端点返回DataSource中所有POJO的 Set 。那么当我 @GET 端点时它会返回:
[{"id":1},{"id":0}]
表示DataSource中的2个对象。如果我 println 这些对象我得到:
[[1 username1 fullName1 ROLE_USR], [0 username2 fullName2 ROLE_USR]]
这是什么交易?为什么不序列化所有字段,但仅显示 id 字段?
编辑1: 添加我的POJO定义:
public class User {
private int id;
private final String emailAddress;
private final String username;
private String password;
private String displayName;
private String description;
private USER_ROLE role;
// Constructors, setters & getters
@Override
public String toString() {
return "[" + id + " " +
username + " " +
displayName + " " +
role + "]";
}
}
答案 0 :(得分:0)
通过切换回杰克逊来解决问题。似乎MOXy没有履行它作为推荐的JSON库的工作。替换
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-moxy</artifactId>
<version>${jersey.version}</version>
</dependency>
带
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId>
<version>${jersey.version}</version>
</dependency>
完成了这个技巧,现在我的端点返回了预期值。