此资源上已经存在相同的问题。但是答案对我来说似乎完全错误,并且对我不起作用。
有什么问题:
com.fasterxml.jackson.databind.JsonMappingException:无法将类型 id 'MyRequest$GetAll' 解析为 [simple type, class Request] 的子类型
我有什么:
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "@class")
@JsonSubTypes({ @JsonSubTypes.Type(value = MyRequest.GetAll.class)})
public class Request {
}
public class MyRequest extends Request {
public static class GetAll extends MyRequest {
public GetProfiles() {
}
}
我试图做的事情:
我尝试遵循该建议,并将子类型注册从注释移动到 java 代码:
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "@class")
public class Request {
}
public class MyRequest extends Request {
public static class GetAll extends MyRequest {
public GetProfiles() {
}
}
public class Utils {
private static final ObjectMapper mapper;
static {
mapper = new ObjectMapper();
registerSubtypes();
mapper.configure(SerializationFeature.WRAP_ROOT_VALUE, false);
mapper.configure(SerializationFeature.INDENT_OUTPUT, true);
mapper.setSerializationInclusion(JsonInclude.Include.NON_EMPTY);
}
private static registerSubtypes() { //REGISTER ALL SUBTYPES
mapper.registerSubtypes(MyRequest.GetAll.class);
//...
}
}
但是没有结果,我仍然得到一个异常!在这种情况下最奇怪的是它在我的本地机器上运行良好,但在部署后无法运行。
问题:
我应该尝试什么来解决这个问题?