我有一个RESTful API的Java项目,我使用Jackson / jersey来处理从支持AngularJS的Web应用程序发送的传入JSON POST数据。
我们在版本1.8中使用jersey-json(通过Maven),因为这是我们公司推荐的版本。
以下课程
一切运作良好//Appending 1,2,3 to the given array
function doSomething(someArray) {
return someArray.concat(['1', '2', '3']);
}
即使我们决定使用具有空构造函数和公共setter的私有成员,它仍然可以正常工作。
但是我们想让这个类不可变。经过一些研究后,我发现我可以通过将@JsonCreator与@JsonProperty一起使用来实现这一点:
public class POST_WorkitemInfo {
public String workitem;
public String workflow;
public String taskname;
public String force;
}
但是现在对API的调用因NullPointerException而失败:
private final String workitem;
private final String workflow;
private final String taskname;
private final String force;
@JsonCreator
public POST_WorkitemInfo(@JsonProperty("workitem") String workitem, @JsonProperty("workflow") String workflow,
@JsonProperty("taskname") String taskname, @JsonProperty("force") String force) {
this.workitem = workitem;
this.workflow = workflow;
this.taskname = taskname;
this.force = force;
}
我在这里缺少什么?我需要添加更多注释吗?
答案 0 :(得分:0)
我们迁移到泽西版1.19
将依赖项添加到jersey-servlet后,一切正常,包括@JsonCreator
和@JsonProperty
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-server</artifactId>
<version>1.19</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-json</artifactId>
<version>1.19</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-servlet</artifactId>
<version>1.19</version>
</dependency>