我有看起来像这样的POST方法
POST
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
@Path("/newJob")
public JobResponseDTO addNewJob(JobDataDTO jobDataDTO) {
JobDataDTO看起来像这样
public String jobName;
public JsonNode info;
public String jobType;
info属性包含没有定义结构的嵌套json。
我正在使用Jersey和Jackson。
每当我通过以下方式传递json:-
{
"jobName": "MysqlJob",
"jobType": "Mysql",
"info: : {
"key" : "xyz",
"params" : {
"resource": "item",
"request_id": "c0f2befd-540e-44f9-84b5-9094be40b983",
"date": "2018-11-30 PST;2018-12-16 PST",
}
}
}
我正在例外。
avax.servlet.ServletException: javax.servlet.ServletException: Exception [EclipseLink-44] (Eclipse Persistence Services - 2.6.0.v20150309-bf26070): org.eclipse.persistence.exceptions.DescriptorException|Exception Description: Missing class indicator field from database row [org.eclipse.persistence.internal.oxm.record.UnmarshalRecordImpl@1b1bfcec].|Descriptor: XMLDescriptor(com.fasterxml.jackson.databind.JsonNode --> [])
很多人被困在这里。
答案 0 :(得分:0)
我能够按照以下方式进行操作。
在JobDataDTO的构造函数中添加@JsonCreator属性,并在构造函数的args中声明@JsonProperty。
@JsonCreator
public JobDataDTO(@JsonProperty("info") JsonNode info, String jobName, String jobType)```