У меня была проблема десериализации Джексона одного из моих классов java, который исходит от стороннего API, который не имеет конструкторов по умолчанию. Чтобы преодолеть эту проблему, я использовал JacksonMixIn, и она работала но проблема заключалась в том, что у меня есть конечная точка REST, реализованная на API Джерси, которая принимается одним из вышеперечисленных классов как параметр метода с клиентской стороны на сторону сервера. Поэтому, когда десериализация это бросает мне следующую ошибку.Как использовать jackson mixin на параметрах метода Джерси REST
No suitable constructor found for type [simple type, class net.rcarz.jiraclient.Priority]: can not instantiate from JSON object (need to add/enable type information?)
at [Source: [email protected]; line: 1, column: 454]...
Затронутые классы
public class TestCaseVO{
private Priority priority;
private User reporter;
}
public class Priority {
protected Priority(RestClient restclient, JSONObject json) {
super(restclient);
if (json != null)
deserialise(json);
}
}
Это объект, используемый для связи клиента с сервером
public class myDataObject{
private String userName;
private List<TestCaseVO> testCases;
//Getter and setters
}
Джерси Endpoint
@POST
@Path("/bug")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public TestCaseVO attachBugForTestCase(myDataObject myDataObject){
// when deserializing to MyDataObject it thorows above error
//Handle logic
}
сторона клиента Фрагмент код
var myDataObject= {
"testCases": [$scope.bug.TestCaseVO],
"userName":userName}
angularJsMyService.Bug.attachBug({},myDataObject)
.$promise.then(function(data){
...
}
Мой вопрос заключается в том, что, как я могу использовать Джексон подмешать по параметрам методов REST до Джексона десериализации them.Appreciate любой помощи.