このリソースには既に同じ問題があります。しかし、答えは私にとっては完全に間違っているようで、うまくいきません。
なんて問題:
com.fasterxml.jackson.databind.JsonMappingException: タイプ ID 'MyRequest$GetAll' を [シンプル タイプ、クラス リクエスト] のサブタイプに解決できませんでした
私が持っていたもの:
@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);
//...
}
}
しかし、結果はありません。それでも例外が発生します。この状況で最も興味深いのは、ローカル マシンでは問題なく動作するが、デプロイ後には動作しないことです。
質問:
この問題を解決するにはどうすればよいですか?